From 1e841467ec4495c0caa14ba47185b2dce116ca39 Mon Sep 17 00:00:00 2001 From: Loretta Date: Fri, 24 Oct 2025 08:12:35 +0200 Subject: [PATCH] Implement CheckAndUpdateProductManageInventoryMethodToManageStock to MgEventConsumer; improvements; --- .../Areas/Admin/Controllers/CustomOrderController.cs | 1 + .../Admin/Controllers/CustomOrderSignalREndpoint.cs | 6 ++++++ .../Domains/DataLayer/FruitBankDbContext.cs | 3 +-- .../Domains/DataLayer/OrderDtoDbTable.cs | 3 +++ .../Domains/EventConsumers/FruitBankEventConsumer.cs | 10 ++++++---- 5 files changed, 17 insertions(+), 6 deletions(-) diff --git a/Nop.Plugin.Misc.AIPlugin/Areas/Admin/Controllers/CustomOrderController.cs b/Nop.Plugin.Misc.AIPlugin/Areas/Admin/Controllers/CustomOrderController.cs index 8c40534..976b51b 100644 --- a/Nop.Plugin.Misc.AIPlugin/Areas/Admin/Controllers/CustomOrderController.cs +++ b/Nop.Plugin.Misc.AIPlugin/Areas/Admin/Controllers/CustomOrderController.cs @@ -78,6 +78,7 @@ namespace Nop.Plugin.Misc.FruitBankPlugin.Areas.Admin.Controllers [NonAction] public Task> GetAllOrderDtos() => _customOrderSignalREndpoint.GetAllOrderDtos(); [NonAction]public Task GetOrderDtoById(int orderId) => _customOrderSignalREndpoint.GetOrderDtoById(orderId); [NonAction]public Task> GetPendingOrderDtos() => _customOrderSignalREndpoint.GetPendingOrderDtos(); + [NonAction]public Task> GetPendingOrderDtosForMeasuring() => _customOrderSignalREndpoint.GetPendingOrderDtosForMeasuring(); [NonAction] public Task StartMeasuring(int orderId, int userId) => _customOrderSignalREndpoint.StartMeasuring(orderId, userId); [NonAction]public Task SetOrderStatusToComplete(int orderId, int revisorId) => _customOrderSignalREndpoint.SetOrderStatusToComplete(orderId, revisorId); [NonAction] public Task> GetAllOrderDtoByIds(int[] orderIds) => _customOrderSignalREndpoint.GetAllOrderDtoByIds(orderIds); diff --git a/Nop.Plugin.Misc.AIPlugin/Areas/Admin/Controllers/CustomOrderSignalREndpoint.cs b/Nop.Plugin.Misc.AIPlugin/Areas/Admin/Controllers/CustomOrderSignalREndpoint.cs index 7a0373f..f960399 100644 --- a/Nop.Plugin.Misc.AIPlugin/Areas/Admin/Controllers/CustomOrderSignalREndpoint.cs +++ b/Nop.Plugin.Misc.AIPlugin/Areas/Admin/Controllers/CustomOrderSignalREndpoint.cs @@ -35,6 +35,12 @@ public class CustomOrderSignalREndpoint(FruitBankDbContext ctx, IWorkContext wor return await ctx.OrderDtos.GetAllByOrderStatus(OrderStatus.Pending).ToListAsync(); } + [SignalR(SignalRTags.GetPendingOrderDtosForMeasuring)] + public async Task> GetPendingOrderDtosForMeasuring() + { + return await ctx.OrderDtos.GetAllForMeasuring().ToListAsync(); + } + [SignalR(SignalRTags.GetAllOrderDtoByIds)] public async Task> GetAllOrderDtoByIds(int[] orderIds) { diff --git a/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/FruitBankDbContext.cs b/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/FruitBankDbContext.cs index 5c6c0ab..f921bab 100644 --- a/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/FruitBankDbContext.cs +++ b/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/FruitBankDbContext.cs @@ -55,7 +55,6 @@ public class FruitBankDbContext : MgDbContextBase, public FilesDbTable Files { get; set; } public ShippingDocumentToFilesDbTable ShippingDocumentToFiles { get; set; } - public IRepository Products { get; set; } public IRepository Customers { get; set; } public IRepository CustomerRoles { get; set; } public IRepository CustomerRoleMappings { get; set; } @@ -69,7 +68,7 @@ public class FruitBankDbContext : MgDbContextBase, IRepository customerRepository, IRepository customerCustomerRoleMappingRepository, IRepository customerRoleRepository, - IEnumerable logWriters) : base(dataProvider, lockService, new Logger(logWriters.ToArray())) + IEnumerable logWriters) : base(productRepository, dataProvider, lockService, new Logger(logWriters.ToArray())) { _storeContext = storeContext; _productService = productService; diff --git a/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/OrderDtoDbTable.cs b/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/OrderDtoDbTable.cs index e930071..5257fac 100644 --- a/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/OrderDtoDbTable.cs +++ b/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/OrderDtoDbTable.cs @@ -33,5 +33,8 @@ public class OrderDtoDbTable : MgDtoDbTableBase public IQueryable GetAllByOrderStatus(OrderStatus orderStatus, bool loadRelations = true) => GetAll(loadRelations).Where(o => o.OrderStatusId == (int)orderStatus); + public IQueryable GetAllForMeasuring(bool loadRelations = true) + => GetAllByOrderStatus(OrderStatus.Pending, loadRelations).Where(o => o.DateOfReceipt != null); + public IQueryable GetAllByIds(IEnumerable orderIds, bool loadRelations = true) => GetAll(loadRelations).Where(o => orderIds.Contains(o.Id)); } diff --git a/Nop.Plugin.Misc.AIPlugin/Domains/EventConsumers/FruitBankEventConsumer.cs b/Nop.Plugin.Misc.AIPlugin/Domains/EventConsumers/FruitBankEventConsumer.cs index 3f323f8..4b45f16 100644 --- a/Nop.Plugin.Misc.AIPlugin/Domains/EventConsumers/FruitBankEventConsumer.cs +++ b/Nop.Plugin.Misc.AIPlugin/Domains/EventConsumers/FruitBankEventConsumer.cs @@ -14,7 +14,7 @@ using Mango.Nop.Core.Extensions; namespace Nop.Plugin.Misc.FruitBankPlugin.Domains.EventConsumers; public class FruitBankEventConsumer(IHttpContextAccessor httpContextAcc, FruitBankDbContext ctx, FruitBankAttributeService fruitBankAttributeService, IEnumerable logWriters) : - MgEventConsumer(httpContextAcc, logWriters), + MgEventConsumer(ctx, httpContextAcc, logWriters), IConsumer>, IConsumer>, IConsumer>, @@ -28,9 +28,9 @@ public class FruitBankEventConsumer(IHttpContextAccessor httpContextAcc, FruitBa { public override async Task HandleEventAsync(EntityUpdatedEvent eventMessage) { - var product = eventMessage.Entity; + var product = await CheckAndUpdateProductManageInventoryMethodToManageStock(eventMessage.Entity); - var saveProductCustomAttributesResult = await SaveProductCustomAttributesAsync(eventMessage.Entity); + var saveProductCustomAttributesResult = await SaveProductCustomAttributesAsync(product); //var isMeasurableProduct = await fruitBankAttributeService.IsMeasurableEntityAsync(product.Id); @@ -52,7 +52,9 @@ public class FruitBankEventConsumer(IHttpContextAccessor httpContextAcc, FruitBa public override async Task HandleEventAsync(EntityInsertedEvent eventMessage) { - await SaveProductCustomAttributesAsync(eventMessage.Entity); //TODO: ez ide miért kell? - J. + var product = await CheckAndUpdateProductManageInventoryMethodToManageStock(eventMessage.Entity); + + await SaveProductCustomAttributesAsync(product); //TODO: ez ide miért kell? - J. await base.HandleEventAsync(eventMessage); }