Mango.Nop.Plugins/Nop.Plugin.Misc.AuctionPlugin/Domains/EventConsumers/AuctionEventConsumer.cs

25 lines
989 B
C#

using Mango.Nop.Services;
using Microsoft.AspNetCore.Http;
using Nop.Core.Domain.Catalog;
using Nop.Core.Events;
using Nop.Plugin.Misc.AuctionPlugin.Domains.DataLayer;
using Nop.Plugin.Misc.AuctionPlugin.Domains.Enums;
namespace Nop.Plugin.Misc.AuctionPlugin.Domains.EventConsumers;
public class AuctionEventConsumer(IHttpContextAccessor httpContextAccessor, AuctionDbContext ctx) : MgEventConsumer(httpContextAccessor)
{
public override async Task HandleEventAsync(EntityUpdatedEvent<Product> eventMessage)
{
//TODO: itt lehetne ciklussal az összes ProductToAuction-re! - J.
var productToAuction = await ctx.ProductToAuctions.GetByProductId(eventMessage.Entity.Id).FirstOrDefaultAsync();
//foreach
if (productToAuction is { AuctionStatus: AuctionStatus.None })
{
await ctx.ProductToAuctions.DeactivateItem(productToAuction, eventMessage.Entity.Price);
}
await base.HandleEventAsync(eventMessage);
}
}