Implement CheckAndUpdateProductManageInventoryMethodToManageStock to MgEventConsumer; improvements;

This commit is contained in:
Loretta 2025-10-24 08:12:35 +02:00
parent 9601707396
commit 1e841467ec
5 changed files with 17 additions and 6 deletions

View File

@ -78,6 +78,7 @@ namespace Nop.Plugin.Misc.FruitBankPlugin.Areas.Admin.Controllers
[NonAction] public Task<List<OrderDto>> GetAllOrderDtos() => _customOrderSignalREndpoint.GetAllOrderDtos();
[NonAction]public Task<OrderDto> GetOrderDtoById(int orderId) => _customOrderSignalREndpoint.GetOrderDtoById(orderId);
[NonAction]public Task<List<OrderDto>> GetPendingOrderDtos() => _customOrderSignalREndpoint.GetPendingOrderDtos();
[NonAction]public Task<List<OrderDto>> GetPendingOrderDtosForMeasuring() => _customOrderSignalREndpoint.GetPendingOrderDtosForMeasuring();
[NonAction] public Task<OrderDto> StartMeasuring(int orderId, int userId) => _customOrderSignalREndpoint.StartMeasuring(orderId, userId);
[NonAction]public Task<OrderDto> SetOrderStatusToComplete(int orderId, int revisorId) => _customOrderSignalREndpoint.SetOrderStatusToComplete(orderId, revisorId);
[NonAction] public Task<List<OrderDto>> GetAllOrderDtoByIds(int[] orderIds) => _customOrderSignalREndpoint.GetAllOrderDtoByIds(orderIds);

View File

@ -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<List<OrderDto>> GetPendingOrderDtosForMeasuring()
{
return await ctx.OrderDtos.GetAllForMeasuring().ToListAsync();
}
[SignalR(SignalRTags.GetAllOrderDtoByIds)]
public async Task<List<OrderDto>> GetAllOrderDtoByIds(int[] orderIds)
{

View File

@ -55,7 +55,6 @@ public class FruitBankDbContext : MgDbContextBase,
public FilesDbTable Files { get; set; }
public ShippingDocumentToFilesDbTable ShippingDocumentToFiles { get; set; }
public IRepository<Product> Products { get; set; }
public IRepository<Customer> Customers { get; set; }
public IRepository<CustomerRole> CustomerRoles { get; set; }
public IRepository<CustomerCustomerRoleMapping> CustomerRoleMappings { get; set; }
@ -69,7 +68,7 @@ public class FruitBankDbContext : MgDbContextBase,
IRepository<Customer> customerRepository,
IRepository<CustomerCustomerRoleMapping> customerCustomerRoleMappingRepository,
IRepository<CustomerRole> customerRoleRepository,
IEnumerable<IAcLogWriterBase> logWriters) : base(dataProvider, lockService, new Logger<FruitBankDbContext>(logWriters.ToArray()))
IEnumerable<IAcLogWriterBase> logWriters) : base(productRepository, dataProvider, lockService, new Logger<FruitBankDbContext>(logWriters.ToArray()))
{
_storeContext = storeContext;
_productService = productService;

View File

@ -33,5 +33,8 @@ public class OrderDtoDbTable : MgDtoDbTableBase<OrderDto, Order>
public IQueryable<OrderDto> GetAllByOrderStatus(OrderStatus orderStatus, bool loadRelations = true)
=> GetAll(loadRelations).Where(o => o.OrderStatusId == (int)orderStatus);
public IQueryable<OrderDto> GetAllForMeasuring(bool loadRelations = true)
=> GetAllByOrderStatus(OrderStatus.Pending, loadRelations).Where(o => o.DateOfReceipt != null);
public IQueryable<OrderDto> GetAllByIds(IEnumerable<int> orderIds, bool loadRelations = true) => GetAll(loadRelations).Where(o => orderIds.Contains(o.Id));
}

View File

@ -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<IAcLogWriterBase> logWriters) :
MgEventConsumer(httpContextAcc, logWriters),
MgEventConsumer(ctx, httpContextAcc, logWriters),
IConsumer<EntityDeletedEvent<Shipping>>,
IConsumer<EntityInsertedEvent<ShippingItem>>,
IConsumer<EntityUpdatedEvent<ShippingItem>>,
@ -28,9 +28,9 @@ public class FruitBankEventConsumer(IHttpContextAccessor httpContextAcc, FruitBa
{
public override async Task HandleEventAsync(EntityUpdatedEvent<Product> 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>(product.Id);
@ -52,7 +52,9 @@ public class FruitBankEventConsumer(IHttpContextAccessor httpContextAcc, FruitBa
public override async Task HandleEventAsync(EntityInsertedEvent<Product> 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);
}