using AyCode.Core.Loggers;
using Mango.Nop.Core.Interfaces;
using Mango.Nop.Core.Loggers;
using Mango.Nop.Data.Interfaces;
using Mango.Nop.Data.Repositories;
using Microsoft.AspNetCore.Http;
using Nop.Core.Domain.Catalog;
using Nop.Core.Domain.Customers;
using Nop.Core.Domain.Orders;
using Nop.Core.Events;
using Nop.Services.Events;
using Nop.Web.Framework.Events;
namespace Mango.Nop.Services;
///
/// Represents plugin event consumer
///
public abstract class MgEventConsumerBase(IMgDbContextBase ctx, IHttpContextAccessor httpContextAccessor, IEnumerable logWriters) :
IConsumer>,
IConsumer>,
IConsumer,
IConsumer,
IConsumer,
IConsumer
//IConsumer>,
//IConsumer>,
//IConsumer>
{
#region Fields
protected ILogger Logger { get; } = new Logger(logWriters.ToArray());
protected readonly IHttpContextAccessor HttpContextAccessor = httpContextAccessor;
#endregion
protected virtual async Task CheckAndUpdateProductManageInventoryMethodToManageStock(Product product)
{
if (product.ManageInventoryMethod == ManageInventoryMethod.ManageStock) return product;
product.ManageInventoryMethod = ManageInventoryMethod.ManageStock;
await ctx.Products.UpdateAsync(product, false);
return product;
}
public virtual async Task HandleEventAsync(EntityUpdatedEvent eventMessage)
{ }
public virtual async Task HandleEventAsync(EntityInsertedEvent eventMessage)
{ }
public virtual async Task HandleEventAsync(CustomerRegisteredEvent eventMessage)
{ }
public virtual async Task HandleEventAsync(OrderPlacedEvent eventMessage)
{ }
public virtual async Task HandleEventAsync(PageRenderingEvent eventMessage)
{ }
public virtual async Task HandleEventAsync(ProductSearchEvent eventMessage)
{ }
}