FruitBankHybridApp/FruitBankHybrid.Shared/Pages/ShippingsAdmin.razor.cs

106 lines
4.4 KiB
C#

using AyCode.Core.Helpers;
using AyCode.Core.Loggers;
using DevExpress.Blazor;
using DevExpress.ClipboardSource.SpreadsheetML;
using FruitBank.Common.Dtos;
using FruitBank.Common.Entities;
using FruitBank.Common.Interfaces;
using FruitBank.Common.Models;
using FruitBankHybrid.Shared.Components;
using FruitBankHybrid.Shared.Components.Grids.ShippingItems;
using FruitBankHybrid.Shared.Databases;
using FruitBankHybrid.Shared.Services.Loggers;
using FruitBankHybrid.Shared.Services.SignalRs;
using Mango.Nop.Core.Loggers;
using Microsoft.AspNetCore.Components;
namespace FruitBankHybrid.Shared.Pages;
public partial class ShippingsAdmin : ComponentBase
{
[Inject] public required IEnumerable<IAcLogWriterClientBase> LogWriters { get; set; }
[Inject] public required FruitBankSignalRClient FruitBankSignalRClient { get; set; }
[Inject] public required NavigationManager NavManager { get; set; }
[Inject] private IDialogService DialogService { get; set; } = null!;
[Inject] public required LoggedInModel LoggedInModel { get; set; }
[Inject] public required DatabaseClient Database { get; set; }
private GridProductDtoTemplate gridProductDtoTemplate;
private GridShipping gridShipping;
private GridShippingDocument gridShippingDocument;
private GridShippingItemTemplate gridShippingItemTemplate;
private GridShippingItemPallets gridShippingItemPallet;
public List<Shipping> Shippings { get; set; } = [];
public AcFastObservableCollection<ShippingDocument> ShippingDocuments { get; set; } = [];
public List<ShippingItem> ShippingItems { get; set; } = [];
public List<ShippingItemPallet> ShippingItemPallets { get; set; } = [];
public bool AutoCollapseDetailRow { get; set; }
private ILogger _logger = null!;
public int ActiveTabIndex;
protected override async Task OnInitializedAsync()
{
if (!LoggedInModel.IsRevisor) NavManager.NavigateTo("/Login");
LoadingPanelVisibility.Visible = true;
_logger = new LoggerClient<ShippingsAdmin>(LogWriters.ToArray());
_logger.Info("OnInitializedAsync");
await RefreshOrdersFromDb(DateTime.Now);
await base.OnInitializedAsync();
}
private async Task RefreshOrdersFromDb(DateTime dateTime)
{
LoadingPanelVisibility.Visible = true;
//Shippings.Clear();
//Shippings.AddRange((await FruitBankSignalRClient.GetShippings() ?? []).OrderByDescending(o => o.Id));//.Where(o => o.HasMeasuringAccess(LoggedInModel.CustomerDto?.Id, LoggedInModel.IsRevisor)).OrderBy(o => o.DateOfReceipt).ToList();
LoadingPanelVisibility.Visible = false;
}
protected async Task OnActiveTabChanged(int activeTabIndex)
{
ActiveTabIndex = activeTabIndex;
LoadingPanelVisibility.Visible = true;
switch (ActiveTabIndex)
{
case 0:
//await Database.ProductDtoTable.LoadDataAsync(true);
gridProductDtoTemplate.Grid.Reload();
break;
case 1:
if (Shippings.Count == 0)
{
//Shippings.AddRange((await FruitBankSignalRClient.GetShippings() ?? []).OrderByDescending(o => o.Id)); //.Where(o => o.HasMeasuringAccess(LoggedInModel.CustomerDto?.Id, LoggedInModel.IsRevisor)).OrderBy(o => o.DateOfReceipt).ToList();}
}
gridShipping.Grid.Reload();
break;
case 2:
if (ShippingDocuments.Count == 0)
{
//ShippingDocuments.AddRange((await FruitBankSignalRClient.GetShippingDocuments() ?? []).OrderByDescending(o => o.Id)); //.Where(o => o.HasMeasuringAccess(LoggedInModel.CustomerDto?.Id, LoggedInModel.IsRevisor)).OrderBy(o => o.DateOfReceipt).ToList();
}
gridShippingDocument.Grid.Reload();
break;
case 3:
gridShippingItemTemplate.Grid.Reload();
//if(ShippingItems.Count=0) ShippingItems.AddRange((await FruitBankSignalRClient.GetShippingItems() ?? []).OrderByDescending(o => o.Id)); //.Where(o => o.HasMeasuringAccess(LoggedInModel.CustomerDto?.Id, LoggedInModel.IsRevisor)).OrderBy(o => o.DateOfReceipt).ToList();
break;
case 4:
gridShippingItemPallet.gridOrderItemPallet.Reload();
break;
}
LoadingPanelVisibility.Visible = false;
}
}