diff --git a/FruitBank.Common/Interfaces/IFruitBankDataControllerCommon.cs b/FruitBank.Common/Interfaces/IFruitBankDataControllerCommon.cs index e7e5fd1..5e17273 100644 --- a/FruitBank.Common/Interfaces/IFruitBankDataControllerCommon.cs +++ b/FruitBank.Common/Interfaces/IFruitBankDataControllerCommon.cs @@ -26,6 +26,7 @@ public interface IFruitBankDataControllerCommon #region ShippingItem public Task?> GetShippingItems(); + public Task?> GetShippingItemsByShippingId(int shippingId); public Task?> GetShippingItemsByDocumentId(int shippingDocumentId); public Task GetShippingItemById(int id); public Task AddShippingItem(ShippingItem shippingItem); diff --git a/FruitBank.Common/SignalRs/SignalRTags.cs b/FruitBank.Common/SignalRs/SignalRTags.cs index 3fd5465..c10418e 100644 --- a/FruitBank.Common/SignalRs/SignalRTags.cs +++ b/FruitBank.Common/SignalRs/SignalRTags.cs @@ -25,6 +25,7 @@ public class SignalRTags : AcSignalRTags public const int GetShippingItems = 50; public const int GetShippingItemById = 51; public const int GetShippingItemsByDocumentId = 52; + public const int GetShippingItemsByShippingId = 53; public const int AddShippingItem = 55; public const int UpdateShippingItem = 56; public const int UpdateMeasuredShippingItem = 57; diff --git a/FruitBankHybrid.Shared/Components/GridShipping.razor b/FruitBankHybrid.Shared/Components/GridShipping.razor deleted file mode 100644 index 87cbd73..0000000 --- a/FruitBankHybrid.Shared/Components/GridShipping.razor +++ /dev/null @@ -1,183 +0,0 @@ -@using AyCode.Core.Helpers -@using AyCode.Utils.Extensions -@using FruitBank.Common.Dtos -@using FruitBank.Common.Entities -@using FruitBankHybrid.Shared.Databases -@using FruitBankHybrid.Shared.Services.SignalRs - -@inject FruitBankSignalRClient FruitBankSignalRClient - - - - - - - - - - - - - - - @if (IsMasterGrid) - { - var shipping = ((Shipping)context.DataItem); - var shippingDocuments = new AcFastObservableCollection(); - shippingDocuments.AddRange(shipping?.ShippingDocuments ?? []); - - - - @{ - - - } - - - - - - - } - - - - - - - - - - - - - - - - @* - - - *@ - - - - - - - - -@code { - //[Inject] public required ObjectLock ObjectLock { get; set; } - [Inject] public required DatabaseClient Database { get; set; } - - [Parameter] public bool IsMasterGrid { get; set; } = false; - //[Parameter] public OrderDto? OrderDto { get; set; } - [Parameter] public List? Shippings{ get; set; } - - const string ExportFileName = "ExportResult"; - string GridSearchText = ""; - bool EditItemsEnabled { get; set; } - int FocusedRowVisibleIndex { get; set; } - public MgGridBase Grid { get; set; } - - private int _activeTabIndex; - protected override async Task OnInitializedAsync() - { - await ReloadDataFromDb(false); - } - - private async Task ReloadDataFromDb(bool forceReload = false) - { - if (!IsMasterGrid) return; - - //ProductDtos ??= await FruitBankSignalRClient.GetProductDtos() ?? []; - //ProductDtos ??= await Database.ProductDtoTable.LoadDataAsync(true); - - using (await ObjectLock.GetSemaphore().UseWaitAsync()) - { - if (Shippings == null) Shippings = await FruitBankSignalRClient.GetShippings() ?? []; - else if (Shippings.Count == 0 || forceReload) - { - Shippings.Clear(); - Shippings.AddRange(await FruitBankSignalRClient.GetShippings() ?? []); - } - } - - if (forceReload) Grid?.Reload(); - } - - async Task Grid_DataItemDeleting(GridDataItemDeletingEventArgs e) { - // await NwindDataService.RemoveEmployeeAsync((EditableEmployee)e.DataItem); - // await LoadGridDataAsync(); - // if(Data.Length == 0) - // UpdateEditItemsEnabled(false); - } - async Task Grid_EditModelSaving(GridEditModelSavingEventArgs e) { - // if(e.IsNew) { - // await NwindDataService.InsertEmployeeAsync((EditableEmployee)e.EditModel); - // UpdateEditItemsEnabled(true); - // } else - // await NwindDataService.UpdateEmployeeAsync((EditableEmployee)e.DataItem, (EditableEmployee)e.EditModel); - // await LoadGridDataAsync(); - } - async Task NewItem_Click() { - await Grid.StartEditNewRowAsync(); - } - async Task EditItem_Click() { - await Grid.StartEditRowAsync(FocusedRowVisibleIndex); - } - void DeleteItem_Click() { - Grid.ShowRowDeleteConfirmation(FocusedRowVisibleIndex); - } - void ColumnChooserItem_Click(ToolbarItemClickEventArgs e) { - Grid.ShowColumnChooser(); - } - async Task ExportXlsxItem_Click() { - await Grid.ExportToXlsxAsync(ExportFileName); - } - async Task ExportXlsItem_Click() { - await Grid.ExportToXlsAsync(ExportFileName); - } - async Task ExportCsvItem_Click() { - await Grid.ExportToCsvAsync(ExportFileName); - } - async Task ExportPdfItem_Click() { - await Grid.ExportToPdfAsync(ExportFileName); - } - protected async Task OnActiveTabChanged(int activeTabIndex) - { - _activeTabIndex = activeTabIndex; - return; - - // switch (_activeTabIndex) - // { - // case 0: - // if(ProductDtos == null) - // ProductDtos = (await FruitBankSignalRClient.GetProductDtos() ?? []); //.Where(o => o.HasMeasuringAccess(LoggedInModel.CustomerDto?.Id, LoggedInModel.IsRevisor)).OrderBy(o => o.DateOfReceipt).ToList(); - // break; - // case 1: - // if(OrderDtos == null) - // OrderDtos = (await FruitBankSignalRClient.GetAllOrderDtos() ?? []).OrderByDescending(o => o.Id).ToList(); //.Where(o => o.HasMeasuringAccess(LoggedInModel.CustomerDto?.Id, LoggedInModel.IsRevisor)).OrderBy(o => o.DateOfReceipt).ToList(); - // break; - // case 2: - // if (OrderItemDtos == null) - // OrderItemDtos = (await FruitBankSignalRClient.GetAllOrderItemDtos() ?? []).OrderByDescending(o => o.Id).ToList(); //.Where(o => o.HasMeasuringAccess(LoggedInModel.CustomerDto?.Id, LoggedInModel.IsRevisor)).OrderBy(o => o.DateOfReceipt).ToList(); - // break; - // } - } -} - diff --git a/FruitBankHybrid.Shared/Components/GridShippingDocument.razor b/FruitBankHybrid.Shared/Components/GridShippingDocument.razor index 888d88d..978137b 100644 --- a/FruitBankHybrid.Shared/Components/GridShippingDocument.razor +++ b/FruitBankHybrid.Shared/Components/GridShippingDocument.razor @@ -17,7 +17,7 @@ EditModelSaving="Grid_EditModelSaving" FocusedRowChanged="Grid_FocusedRowChanged"> - + ? Shippings { get; set; } + [Parameter] public AcObservableCollection? Shippings { get; set; } [Parameter] public List? Partners { get; set; } - [Parameter] public AcFastObservableCollection? ShippingDocuments { get; set; } + [Parameter] public AcObservableCollection? ShippingDocuments { get; set; } [Parameter] public Func?, Task>? OnUploadedFileParsed { get; set; } @@ -180,11 +180,10 @@ using (await ObjectLock.GetSemaphore().UseWaitAsync()) { - if (Shippings == null) Shippings = await FruitBankSignalRClient.GetShippings() ?? []; + if (Shippings == null) Shippings = new AcObservableCollection(await FruitBankSignalRClient.GetShippings() ?? []); else if (Shippings.Count == 0 || forceReload) { - Shippings.Clear(); - Shippings.AddRange(await FruitBankSignalRClient.GetShippings() ?? []); + Shippings.Replace(await FruitBankSignalRClient.GetShippings() ?? []); } } diff --git a/FruitBankHybrid.Shared/Components/GridShippingItemTemplate.razor b/FruitBankHybrid.Shared/Components/GridShippingItemTemplate.razor index 91e3372..3b3362a 100644 --- a/FruitBankHybrid.Shared/Components/GridShippingItemTemplate.razor +++ b/FruitBankHybrid.Shared/Components/GridShippingItemTemplate.razor @@ -15,21 +15,12 @@ @inject IEnumerable LogWriters @inject FruitBankSignalRClient FruitBankSignalRClient -@* Data="ShippingItems" IsMasterGrid="IsMasterGrid" CssClass="@GridCss" AutoSaveLayoutName="GridShippingItem" -ValidationEnabled="false" EditMode="GridEditMode.EditRow" -EditModelSaving="Grid_EditModelSaving" -FocusedRowChanged="Grid_FocusedRowChanged" *@ - - - @* *@ + - + @@ -95,7 +86,7 @@ FocusedRowChanged="Grid_FocusedRowChanged" *@ -@* + @* @{ if (context.DataColumn.FieldName == nameof(ShippingItem.ShippingDocumentId)) { @@ -131,7 +122,7 @@ FocusedRowChanged="Grid_FocusedRowChanged" *@ FieldName="MeasuredNetWeight" FooterColumnName="NetWeight" /> - + @* *@ @code { @@ -143,7 +134,7 @@ FocusedRowChanged="Grid_FocusedRowChanged" *@ [Parameter] public IEnumerable? ProductDtos { get; set; } [Parameter] public List? ShippingItems { get; set; } - [Parameter] public AcFastObservableCollection? ShippingDocuments { get; set; } + [Parameter] public AcObservableCollection? ShippingDocuments { get; set; } public bool IsMasterGrid => ParentDataItem == null; public bool ParentDataItemIsShippingDocument => (ParentDataItem is ShippingDocument); @@ -156,7 +147,7 @@ FocusedRowChanged="Grid_FocusedRowChanged" *@ bool EditItemsEnabled { get; set; } = true; int FocusedRowVisibleIndex { get; set; } - public GridShippingItem Grid { get; set; } + public GridShippingItemBase Grid { get; set; } private LoggerClient _logger; protected override async Task OnInitializedAsync() @@ -198,15 +189,14 @@ FocusedRowChanged="Grid_FocusedRowChanged" *@ using (await ObjectLock.GetSemaphore().UseWaitAsync()) if (forceReload) await Grid.ReloadDataSourceAsync(); - if (forceReload) - Grid.Reload(); + if (forceReload) Grid.Reload(); } async Task Grid_FocusedRowChanged(GridFocusedRowChangedEventArgs args) { - if (Grid != null && Grid.IsEditing() && !Grid.IsEditingNewRow()) - await Grid.SaveChangesAsync(); - + if ((args.Grid.IsEditing() || args.Grid.IsEditingNewRow()) && (args.DataItem as IId).Id > 0) + await args.Grid.SaveChangesAsync(); + FocusedRowVisibleIndex = args.VisibleIndex; EditItemsEnabled = true; } @@ -234,10 +224,4 @@ FocusedRowChanged="Grid_FocusedRowChanged" *@ EditItemsEnabled = true; } - - private void EditModelSaving(GridEditModelSavingEventArgs obj) - { - //obj. - } - } \ No newline at end of file diff --git a/FruitBankHybrid.Shared/Components/Grids/FruitBankGrid.cs b/FruitBankHybrid.Shared/Components/Grids/FruitBankGridBase.cs similarity index 97% rename from FruitBankHybrid.Shared/Components/Grids/FruitBankGrid.cs rename to FruitBankHybrid.Shared/Components/Grids/FruitBankGridBase.cs index 0a267a4..70c8a39 100644 --- a/FruitBankHybrid.Shared/Components/Grids/FruitBankGrid.cs +++ b/FruitBankHybrid.Shared/Components/Grids/FruitBankGridBase.cs @@ -14,7 +14,7 @@ namespace FruitBankHybrid.Shared.Components.Grids; //var a = new GridDevExtremeDataSource(DataSource.AsQueryable().Where(x=>x.IsMeasurable)); -public class FruitBankListGridBase : MgGridBase, TDataItem, int, LoggerClient> where TDataItem : class, IId +public class FruitBankGridBase : MgGridBase, TDataItem, int, LoggerClient> where TDataItem : class, IId { [Inject] public required LoggedInModel LoggedInModel { get; set; } [Inject] public required IJSRuntime JSRuntime { get; set; } diff --git a/FruitBankHybrid.Shared/Components/Grids/Products/GridStockQuantityHistoryDto.cs b/FruitBankHybrid.Shared/Components/Grids/Products/GridStockQuantityHistoryDtoBase.cs similarity index 51% rename from FruitBankHybrid.Shared/Components/Grids/Products/GridStockQuantityHistoryDto.cs rename to FruitBankHybrid.Shared/Components/Grids/Products/GridStockQuantityHistoryDtoBase.cs index e8b3973..d654b00 100644 --- a/FruitBankHybrid.Shared/Components/Grids/Products/GridStockQuantityHistoryDto.cs +++ b/FruitBankHybrid.Shared/Components/Grids/Products/GridStockQuantityHistoryDtoBase.cs @@ -1,24 +1,29 @@ using DevExpress.Blazor; using FruitBank.Common.Dtos; +using FruitBank.Common.Interfaces; using FruitBank.Common.SignalRs; using Microsoft.AspNetCore.Components; namespace FruitBankHybrid.Shared.Components.Grids.Products; -public class GridStockQuantityHistoryDto : FruitBankListGridBase, IGrid +public class GridStockQuantityHistoryDtoBase : FruitBankGridBase, IGrid { - public GridStockQuantityHistoryDto() : base() + public GridStockQuantityHistoryDtoBase() : base() { - GetAllMessageTag = IsMasterGrid ? SignalRTags.GetStockQuantityHistoryDtos : SignalRTags.GetStockQuantityHistoryDtosByProductId; - - //AddMessageTag = SignalRTags.AddShippingItem; - //UpdateMessageTag = SignalRTags.UpdateShippingItem; - //RemoveMessageTag = SignalRTags.; } protected override async Task OnInitializedAsync() { - GetAllMessageTag = IsMasterGrid ? SignalRTags.GetStockQuantityHistoryDtos : SignalRTags.GetStockQuantityHistoryDtosByProductId; + if (GetAllMessageTag > 0) return; + + if (IsMasterGrid) GetAllMessageTag = SignalRTags.GetStockQuantityHistoryDtos; + else + { + if (ContextIds == null || ContextIds.Length == 0) ContextIds = [ParentDataItem!.Id]; + + if (ParentDataItem is IProductDto) GetAllMessageTag = SignalRTags.GetStockQuantityHistoryDtosByProductId; + //else if (ParentDataItem is IShipping) GetAllMessageTag = SignalRTags.GetShippingItemsByShippingId; + } await base.OnInitializedAsync(); } diff --git a/FruitBankHybrid.Shared/Components/Grids/Products/GridStockQuantityHistoryDtoTemplate.razor b/FruitBankHybrid.Shared/Components/Grids/Products/GridStockQuantityHistoryDtoTemplate.razor index 53a18d1..e705510 100644 --- a/FruitBankHybrid.Shared/Components/Grids/Products/GridStockQuantityHistoryDtoTemplate.razor +++ b/FruitBankHybrid.Shared/Components/Grids/Products/GridStockQuantityHistoryDtoTemplate.razor @@ -11,11 +11,11 @@ @inject IEnumerable LogWriters @inject FruitBankSignalRClient FruitBankSignalRClient - + - + @@ -35,7 +35,7 @@ @if (IsMasterGrid) { - + } @* @@ -49,7 +49,7 @@ FieldName="MeasuredNetWeight" FooterColumnName="NetWeight" /> *@ - + @code { [Inject] public required DatabaseClient Database { get; set; } @@ -63,7 +63,7 @@ public bool IsMasterGrid => ParentDataItem == null; string GridCss => !IsMasterGrid ? "hide-toolbar" : string.Empty; - public GridStockQuantityHistoryDto Grid { get; set; } + public GridStockQuantityHistoryDtoBase Grid { get; set; } private LoggerClient _logger = null!; protected override async Task OnInitializedAsync() diff --git a/FruitBankHybrid.Shared/Components/Grids/ShippingItems/GridShippingItem.cs b/FruitBankHybrid.Shared/Components/Grids/ShippingItems/GridShippingItemBase.cs similarity index 74% rename from FruitBankHybrid.Shared/Components/Grids/ShippingItems/GridShippingItem.cs rename to FruitBankHybrid.Shared/Components/Grids/ShippingItems/GridShippingItemBase.cs index f9fa907..a098d73 100644 --- a/FruitBankHybrid.Shared/Components/Grids/ShippingItems/GridShippingItem.cs +++ b/FruitBankHybrid.Shared/Components/Grids/ShippingItems/GridShippingItemBase.cs @@ -8,12 +8,12 @@ using Microsoft.AspNetCore.Components; namespace FruitBankHybrid.Shared.Components.Grids.ShippingItems; -public class GridShippingItem : FruitBankListGridBase, IGrid +public class GridShippingItemBase : FruitBankGridBase, IGrid { private bool _isFirstInitializeParameterCore; private bool _isFirstInitializeParameters; - public GridShippingItem () : base() + public GridShippingItemBase () : base() { AddMessageTag = SignalRTags.AddShippingItem; UpdateMessageTag = SignalRTags.UpdateShippingItem; @@ -23,13 +23,24 @@ public class GridShippingItem : FruitBankListGridBase, IGrid protected override async Task OnInitializedAsync() { + if (GetAllMessageTag > 0) return; + if (IsMasterGrid) GetAllMessageTag = SignalRTags.GetShippingItems; else { - ContextIds = [ParentDataItem!.Id]; + if (ContextIds == null || ContextIds.Length == 0) ContextIds = [ParentDataItem!.Id]; - if (ParentDataItem is IShippingDocument) GetAllMessageTag = SignalRTags.GetShippingItemsByDocumentId; - //else if (ParentDataItem is IShipping) GetAllMessageTag = SignalRTags.GetShippingItemsByShippingId; + switch (ParentDataItem) + { + case IShippingDocument: + GetAllMessageTag = SignalRTags.GetShippingItemsByDocumentId; + break; + case IShipping: + AddMessageTag = SignalRTags.None; + + GetAllMessageTag = SignalRTags.GetShippingItemsByShippingId; + break; + } } await base.OnInitializedAsync(); diff --git a/FruitBankHybrid.Shared/Components/Grids/Shippings/GridShipping.razor b/FruitBankHybrid.Shared/Components/Grids/Shippings/GridShipping.razor new file mode 100644 index 0000000..c0cebb0 --- /dev/null +++ b/FruitBankHybrid.Shared/Components/Grids/Shippings/GridShipping.razor @@ -0,0 +1,143 @@ +@using System.Collections.ObjectModel +@using AyCode.Core.Helpers +@using AyCode.Core.Loggers +@using AyCode.Utils.Extensions +@using FruitBank.Common.Dtos +@using FruitBank.Common.Entities +@using FruitBankHybrid.Shared.Components.Grids.Shippings +@using FruitBankHybrid.Shared.Components.Toolbars +@using FruitBankHybrid.Shared.Databases +@using FruitBankHybrid.Shared.Services.Loggers +@using FruitBankHybrid.Shared.Services.SignalRs + +@inject IEnumerable LogWriters +@inject FruitBankSignalRClient FruitBankSignalRClient + +@* *@ + + + + + + + + + + + + + + + @if (IsMasterGrid) + { + var shipping = ((Shipping)context.DataItem); + var shippingDocuments = shipping?.ShippingDocuments ?? []; + + + + @{ + var observableShippingDocuments = new AcObservableCollection(shippingDocuments); + + } + + + + + + + } + + + @if (IsMasterGrid) + { + + } + + + + + + + + +@code { + //[Inject] public required ObjectLock ObjectLock { get; set; } + [Inject] public required DatabaseClient Database { get; set; } + + [Parameter] public bool IsMasterGrid { get; set; } = false; + //[Parameter] public OrderDto? OrderDto { get; set; } + [Parameter] public AcObservableCollection? Shippings { get; set; } + + const string ExportFileName = "ExportResult"; + string GridSearchText = ""; + bool EditItemsEnabled { get; set; } + int FocusedRowVisibleIndex { get; set; } + public GridShippingBase Grid { get; set; } + string GridCss => !IsMasterGrid ? "hide-toolbar" : string.Empty; + + private int _activeTabIndex; + private LoggerClient _logger; + + protected override async Task OnInitializedAsync() + { + _logger = new LoggerClient(LogWriters.ToArray()); + await ReloadDataFromDb(false); + } + + private async Task ReloadDataFromDb(bool forceReload = false) + { + if (!IsMasterGrid) return; + + //ProductDtos ??= await FruitBankSignalRClient.GetProductDtos() ?? []; + //ProductDtos ??= await Database.ProductDtoTable.LoadDataAsync(true); + + if (Grid == null) return; + + using (await ObjectLock.GetSemaphore().UseWaitAsync()) + if (forceReload) await Grid.ReloadDataSourceAsync(); + + if (forceReload) Grid.Reload(); + } + + async Task Grid_FocusedRowChanged(GridFocusedRowChangedEventArgs args) + { + if (Grid == null) return; + + if (Grid.IsEditing() && !Grid.IsEditingNewRow()) + await Grid.SaveChangesAsync(); + + FocusedRowVisibleIndex = args.VisibleIndex; + EditItemsEnabled = true; + } + + protected async Task OnActiveTabChanged(int activeTabIndex) + { + _activeTabIndex = activeTabIndex; + return; + + // switch (_activeTabIndex) + // { + // case 0: + // if(ProductDtos == null) + // ProductDtos = (await FruitBankSignalRClient.GetProductDtos() ?? []); //.Where(o => o.HasMeasuringAccess(LoggedInModel.CustomerDto?.Id, LoggedInModel.IsRevisor)).OrderBy(o => o.DateOfReceipt).ToList(); + // break; + // case 1: + // if(OrderDtos == null) + // OrderDtos = (await FruitBankSignalRClient.GetAllOrderDtos() ?? []).OrderByDescending(o => o.Id).ToList(); //.Where(o => o.HasMeasuringAccess(LoggedInModel.CustomerDto?.Id, LoggedInModel.IsRevisor)).OrderBy(o => o.DateOfReceipt).ToList(); + // break; + // case 2: + // if (OrderItemDtos == null) + // OrderItemDtos = (await FruitBankSignalRClient.GetAllOrderItemDtos() ?? []).OrderByDescending(o => o.Id).ToList(); //.Where(o => o.HasMeasuringAccess(LoggedInModel.CustomerDto?.Id, LoggedInModel.IsRevisor)).OrderBy(o => o.DateOfReceipt).ToList(); + // break; + // } + } +} + diff --git a/FruitBankHybrid.Shared/Components/Grids/Shippings/GridShippingBase.cs b/FruitBankHybrid.Shared/Components/Grids/Shippings/GridShippingBase.cs new file mode 100644 index 0000000..94d51b3 --- /dev/null +++ b/FruitBankHybrid.Shared/Components/Grids/Shippings/GridShippingBase.cs @@ -0,0 +1,67 @@ +using AyCode.Core.Interfaces; +using DevExpress.Blazor; +using FruitBank.Common.Entities; +using FruitBank.Common.Interfaces; +using FruitBank.Common.SignalRs; +using FruitBankHybrid.Shared.Pages; +using Microsoft.AspNetCore.Components; + +namespace FruitBankHybrid.Shared.Components.Grids.Shippings; + +public class GridShippingBase: FruitBankGridBase, IGrid +{ + private bool _isFirstInitializeParameterCore; + private bool _isFirstInitializeParameters; + + public GridShippingBase() : base() + { + GetAllMessageTag = SignalRTags.GetShippings; + AddMessageTag = SignalRTags.AddShipping; + UpdateMessageTag = SignalRTags.UpdateShipping; + + //RemoveMessageTag = SignalRTags.; + } + + protected override async Task OnInitializedAsync() + { + await base.OnInitializedAsync(); + } + + protected override void OnParametersSet() + { + base.OnParametersSet(); + + if (!_isFirstInitializeParameters) + { + //if (!IsMasterGrid && (ContextIds == null || ContextIds.Length == 0)) + //{ + // ContextIds = [ParentDataItem!.Id]; + // GetAllMessageTag = SignalRTags.GetShippingItemsByDocumentId; + //} + + _isFirstInitializeParameters = false; + } + } + + protected override async Task SetParametersAsyncCore(ParameterView parameters) + { + await base.SetParametersAsyncCore(parameters); + + if (!_isFirstInitializeParameterCore) + { + //if (!IsMasterGrid && (ContextIds == null || ContextIds.Length == 0)) + //{ + // ContextIds = [ParentDataItem!.Id]; + // GetAllMessageTag = SignalRTags.GetShippingItemsByDocumentId; + //} + + //ShowFilterRow = true; + //ShowGroupPanel = true; + //AllowSort = false; + + //etc... + + _isFirstInitializeParameterCore = false; + } + } +} \ No newline at end of file diff --git a/FruitBankHybrid.Shared/Databases/DatabaseClient.cs b/FruitBankHybrid.Shared/Databases/DatabaseClient.cs index 26fd044..afd0311 100644 --- a/FruitBankHybrid.Shared/Databases/DatabaseClient.cs +++ b/FruitBankHybrid.Shared/Databases/DatabaseClient.cs @@ -56,7 +56,7 @@ public class ShippingItemTable : SignalRDataSourceList } } -public class ProductDtoTable(FruitBankSignalRClient fruitBankSignalRClient) : AcFastObservableCollection +public class ProductDtoTable(FruitBankSignalRClient fruitBankSignalRClient) : AcObservableCollection { private readonly SemaphoreSlim _semaphoreSlim = new(1); public async Task LoadDataAsync(bool onlyIfEmpty = true) @@ -81,7 +81,7 @@ public class ProductDtoTable(FruitBankSignalRClient fruitBankSignalRClient) : Ac return this; } } -public class OrderDtoTable(FruitBankSignalRClient fruitBankSignalRClient) : AcFastObservableCollection +public class OrderDtoTable(FruitBankSignalRClient fruitBankSignalRClient) : AcObservableCollection { private readonly SemaphoreSlim _semaphoreSlim = new(1); diff --git a/FruitBankHybrid.Shared/Pages/ShippingsAdmin.razor b/FruitBankHybrid.Shared/Pages/ShippingsAdmin.razor index 1e50c57..4aeb411 100644 --- a/FruitBankHybrid.Shared/Pages/ShippingsAdmin.razor +++ b/FruitBankHybrid.Shared/Pages/ShippingsAdmin.razor @@ -1,6 +1,7 @@ @page "/ShippingsAdmin" @using FruitBank.Common.Dtos @using FruitBankHybrid.Shared.Components +@using FruitBankHybrid.Shared.Components.Grids.Shippings @using FruitBankHybrid.Shared.Databases

Szállítmányok - Adminisztrátor

diff --git a/FruitBankHybrid.Shared/Pages/ShippingsAdmin.razor.cs b/FruitBankHybrid.Shared/Pages/ShippingsAdmin.razor.cs index bc54f56..7ade4cd 100644 --- a/FruitBankHybrid.Shared/Pages/ShippingsAdmin.razor.cs +++ b/FruitBankHybrid.Shared/Pages/ShippingsAdmin.razor.cs @@ -8,6 +8,7 @@ using FruitBank.Common.Interfaces; using FruitBank.Common.Models; using FruitBankHybrid.Shared.Components; using FruitBankHybrid.Shared.Components.Grids.ShippingItems; +using FruitBankHybrid.Shared.Components.Grids.Shippings; using FruitBankHybrid.Shared.Databases; using FruitBankHybrid.Shared.Services.Loggers; using FruitBankHybrid.Shared.Services.SignalRs; @@ -31,8 +32,8 @@ public partial class ShippingsAdmin : ComponentBase private GridShippingItemTemplate gridShippingItemTemplate; private GridShippingItemPallets gridShippingItemPallet; - public List Shippings { get; set; } = []; - public AcFastObservableCollection ShippingDocuments { get; set; } = []; + public AcObservableCollection Shippings { get; set; } = []; + public AcObservableCollection ShippingDocuments { get; set; } = []; public List ShippingItems { get; set; } = []; public List ShippingItemPallets { get; set; } = []; diff --git a/FruitBankHybrid.Shared/Services/SignalRs/FruitBankSignalRClient.cs b/FruitBankHybrid.Shared/Services/SignalRs/FruitBankSignalRClient.cs index 8c0e8e1..594a2e7 100644 --- a/FruitBankHybrid.Shared/Services/SignalRs/FruitBankSignalRClient.cs +++ b/FruitBankHybrid.Shared/Services/SignalRs/FruitBankSignalRClient.cs @@ -99,6 +99,9 @@ namespace FruitBankHybrid.Shared.Services.SignalRs public Task?> GetShippingItemsByDocumentId(int shippingDocumentId) => GetAllAsync>(SignalRTags.GetShippingItemsByDocumentId, [shippingDocumentId]); + public Task?> GetShippingItemsByShippingId(int shippingId) + => GetAllAsync>(SignalRTags.GetShippingItemsByShippingId, [shippingId]); + public Task GetShippingItemById(int id) => GetByIdAsync(SignalRTags.GetShippingItemById, id);