diff --git a/Nop.Plugin.Misc.AIPlugin/Domains/EventConsumers/FruitBankEventConsumer.cs b/Nop.Plugin.Misc.AIPlugin/Domains/EventConsumers/FruitBankEventConsumer.cs index 5c79013..1cfcb62 100644 --- a/Nop.Plugin.Misc.AIPlugin/Domains/EventConsumers/FruitBankEventConsumer.cs +++ b/Nop.Plugin.Misc.AIPlugin/Domains/EventConsumers/FruitBankEventConsumer.cs @@ -18,7 +18,7 @@ using Nop.Services.Events; namespace Nop.Plugin.Misc.FruitBankPlugin.Domains.EventConsumers; -public class FruitBankEventConsumer(IHttpContextAccessor httpContextAccessor, FruitBankDbContext ctx, FruitBankAttributeService fruitBankAttributeService, IStoreContext storeContext, IEnumerable logWriters) : +public class FruitBankEventConsumer(IHttpContextAccessor httpContextAccessor, FruitBankDbContext ctx, FruitBankAttributeService fruitBankAttributeService, IStoreContext storeContext, IEnumerable logWriters, IGenericAttributeService genericAttributeService) : MgEventConsumer(httpContextAccessor, logWriters), IConsumer>, IConsumer>, @@ -34,6 +34,9 @@ public class FruitBankEventConsumer(IHttpContextAccessor httpContextAccessor, Fr public override async Task HandleEventAsync(EntityUpdatedEvent eventMessage) { var product = eventMessage.Entity; + + await SaveCustomAttributesAsync(eventMessage.Entity); + var isMeasurableProduct = await fruitBankAttributeService.IsMeasurableEntityAsync(product.Id); var shippingItems = await ctx.ShippingItems.Table @@ -47,6 +50,53 @@ public class FruitBankEventConsumer(IHttpContextAccessor httpContextAccessor, Fr await base.HandleEventAsync(eventMessage); } + public async Task HandleEventAsync(EntityInsertedEvent eventMessage) + { + await SaveCustomAttributesAsync(eventMessage.Entity); + } + + private async Task SaveCustomAttributesAsync(Product product) + { + if (product == null) + return; + + var form = httpContextAccessor.HttpContext?.Request?.Form; + if (form == null || !form.Any()) + return; + + var isMeasurable = form["IsMeasurable"].ToString().Contains("true"); + + // Save IsMeasurable + if (form.ContainsKey("IsMeasurable")) + { + await genericAttributeService.SaveAttributeAsync(product, "IsMeasurable", isMeasurable); + //Akkor ez kell? - Á. + //await fruitBankAttributeService.InsertOrUpdateMeasuringAttributeValuesAsync(product.Id, 0, 0, isMeasurable, false); + } + + // Save NetWeight + if (form.ContainsKey("NetWeight")) + { + var netWeightStr = form["NetWeight"].ToString(); + if (!string.IsNullOrWhiteSpace(netWeightStr) && decimal.TryParse(netWeightStr, out var netWeight)) + { + await genericAttributeService.SaveAttributeAsync(product, "NetWeight", netWeight); + //Akkor ez kell? - Á. + //await fruitBankAttributeService.InsertOrUpdateMeasuringAttributeValuesAsync(product.Id, 0, 0, , false); + } + } + + // Save IncomingQuantity + if (form.ContainsKey("IncomingQuantity")) + { + var incomingQtyStr = form["IncomingQuantity"].ToString(); + if (!string.IsNullOrWhiteSpace(incomingQtyStr) && int.TryParse(incomingQtyStr, out var incomingQuantity)) + { + await genericAttributeService.SaveAttributeAsync(product, "IncomingQuantity", incomingQuantity); + } + } + } + public async Task HandleEventAsync(EntityInsertedEvent eventMessage) { Logger.Info($"HandleEventAsync EntityInsertedEvent; id: {eventMessage.Entity.Id}");