63 lines
2.1 KiB
C#
63 lines
2.1 KiB
C#
using AyCode.Core.Loggers;
|
|
using Mango.Nop.Core.Interfaces;
|
|
using Mango.Nop.Core.Loggers;
|
|
using Mango.Nop.Core.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;
|
|
|
|
/// <summary>
|
|
/// Represents plugin event consumer
|
|
/// </summary>
|
|
public abstract class MgEventConsumerBase(IMgDbContextBase ctx, IHttpContextAccessor httpContextAccessor, IEnumerable<IAcLogWriterBase> logWriters) :
|
|
IConsumer<EntityUpdatedEvent<Product>>,
|
|
IConsumer<EntityInsertedEvent<Product>>,
|
|
IConsumer<CustomerRegisteredEvent>,
|
|
IConsumer<OrderPlacedEvent>,
|
|
IConsumer<PageRenderingEvent>,
|
|
IConsumer<ProductSearchEvent>
|
|
//IConsumer<EntityInsertedEvent<ShoppingCartItem>>,
|
|
//IConsumer<MessageTokensAddedEvent<Token>>,
|
|
//IConsumer<ModelPreparedEvent<BaseNopModel>>
|
|
{
|
|
#region Fields
|
|
|
|
protected ILogger Logger { get; } = new Logger<MgEventConsumerBase>(logWriters.ToArray());
|
|
protected readonly IHttpContextAccessor HttpContextAccessor = httpContextAccessor;
|
|
#endregion
|
|
|
|
protected virtual async Task<Product> 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<Product> eventMessage)
|
|
{ }
|
|
|
|
public virtual async Task HandleEventAsync(EntityInsertedEvent<Product> 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)
|
|
{ }
|
|
} |