diff --git a/Nop.Plugin.Misc.AIPlugin/Areas/Admin/Controllers/CustomOrderController.cs b/Nop.Plugin.Misc.AIPlugin/Areas/Admin/Controllers/CustomOrderController.cs index c29e9dc..c5422e4 100644 --- a/Nop.Plugin.Misc.AIPlugin/Areas/Admin/Controllers/CustomOrderController.cs +++ b/Nop.Plugin.Misc.AIPlugin/Areas/Admin/Controllers/CustomOrderController.cs @@ -38,12 +38,10 @@ namespace Nop.Plugin.Misc.FruitBankPlugin.Areas.Admin.Controllers } #region CustomOrderSignalREndpoint - public Task> GetAllOrderDtos() - => _customOrderSignalREndpoint.GetAllOrderDtos(); - public Task GetOrderDtoById(int orderId) - => _customOrderSignalREndpoint.GetOrderDtoById(orderId); - public Task> GetPendingOrderDtos() - => _customOrderSignalREndpoint.GetPendingOrderDtos(); + [NonAction] public Task> GetAllOrderDtos() => _customOrderSignalREndpoint.GetAllOrderDtos(); + [NonAction]public Task GetOrderDtoById(int orderId) => _customOrderSignalREndpoint.GetOrderDtoById(orderId); + [NonAction]public Task> GetPendingOrderDtos() => _customOrderSignalREndpoint.GetPendingOrderDtos(); + [NonAction] public Task> GetAllByIds(int[] orderIds) => _customOrderSignalREndpoint.GetAllByIds(orderIds); #endregion CustomOrderSignalREndpoint [CheckPermission(StandardPermission.Orders.ORDERS_VIEW)] @@ -86,16 +84,6 @@ namespace Nop.Plugin.Misc.FruitBankPlugin.Areas.Admin.Controllers return orderListModel; } - public async Task GetPendingOrderListModel() - { - var orderSearchModel = new OrderSearchModel - { - OrderStatusIds = new List { (int)OrderStatus.Pending } - }; - - return await GetOrderListModelByFilter(orderSearchModel); - } - public virtual IActionResult Test() { // Your custom logic here diff --git a/Nop.Plugin.Misc.AIPlugin/Areas/Admin/Controllers/CustomOrderSignalREndpoint.cs b/Nop.Plugin.Misc.AIPlugin/Areas/Admin/Controllers/CustomOrderSignalREndpoint.cs index b4de584..c6249cd 100644 --- a/Nop.Plugin.Misc.AIPlugin/Areas/Admin/Controllers/CustomOrderSignalREndpoint.cs +++ b/Nop.Plugin.Misc.AIPlugin/Areas/Admin/Controllers/CustomOrderSignalREndpoint.cs @@ -12,18 +12,25 @@ public class CustomOrderSignalREndpoint(FruitBankDbContext ctx) : ICustomOrderSi [SignalR(SignalRTags.GetAllOrderDtos)] public async Task> GetAllOrderDtos() { - return await ctx.OrderDtos.GetAllDtos().ToListAsync(); + return await ctx.OrderDtos.GetAll(true).ToListAsync(); } [SignalR(SignalRTags.GetOrderDtoById)] public async Task GetOrderDtoById(int orderId) { - return await ctx.OrderDtos.GetDtoByIdAsync(orderId); + return await ctx.OrderDtos.GetByIdAsync(orderId); } [SignalR(SignalRTags.GetPendingOrderDtos)] public async Task> GetPendingOrderDtos() { - return await ctx.OrderDtos.GetAllByStatusDto(OrderStatus.Pending).ToListAsync(); + return await ctx.OrderDtos.GetAllByStatus(OrderStatus.Pending).ToListAsync(); } + + [SignalR(SignalRTags.GetAllByIdList)] + public async Task> GetAllByIds(int[] orderIds) + { + return await ctx.OrderDtos.GetAllByIds(orderIds).ToListAsync(); + } + } \ No newline at end of file diff --git a/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/OrderDtoDbTable.cs b/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/OrderDtoDbTable.cs index e1204e9..684c88e 100644 --- a/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/OrderDtoDbTable.cs +++ b/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/OrderDtoDbTable.cs @@ -19,20 +19,25 @@ public class OrderDtoDbTable : MgDbTableBase { } - public IQueryable GetAllDtos() + public IQueryable GetAll(bool loadRelations) { return GetAll() .LoadWith(o => o.GenericAttributes) - .LoadWith(o => o.OrderItemDtos).ThenLoad(oi => oi.ProductDto) + .LoadWith(o => o.OrderItemDtos).ThenLoad(oi => oi.ProductDto).ThenLoad(prod=>prod.GenericAttributes) .LoadWith(o => o.OrderItemDtos).ThenLoad(oi => oi.GenericAttributes) .LoadWith(o => o.OrderItemDtos).ThenLoad(oi => oi.OrderItemPallets); } - public Task GetDtoByIdAsync(int orderId) + public Task GetByIdAsync(int orderId) { - return GetAllDtos().Where(x => x.Id == orderId).FirstOrDefaultAsync(null); + return GetAll(true).Where(x => x.Id == orderId).FirstOrDefaultAsync(null); } - public IQueryable GetAllByStatusDto(OrderStatus orderStatus) - => GetAllDtos().Where(o => o.OrderStatusId == (int)orderStatus); + public IQueryable GetAllByStatus(OrderStatus orderStatus) + => GetAll(true).Where(o => o.OrderStatusId == (int)orderStatus); + + public IQueryable GetAllByIds(IEnumerable orderIds) + { + return GetAll(true).Where(o => orderIds.Contains(o.Id)); + } }