565 lines
28 KiB
C#
565 lines
28 KiB
C#
using Nop.Core.Caching;
|
|
using Nop.Core.Domain.Blogs;
|
|
using Nop.Core.Domain.Catalog;
|
|
using Nop.Core.Domain.Configuration;
|
|
using Nop.Core.Domain.Localization;
|
|
using Nop.Core.Domain.Media;
|
|
using Nop.Core.Domain.News;
|
|
using Nop.Core.Domain.Orders;
|
|
using Nop.Core.Domain.Polls;
|
|
using Nop.Core.Domain.Topics;
|
|
using Nop.Core.Domain.Vendors;
|
|
using Nop.Core.Events;
|
|
using Nop.Services.Cms;
|
|
using Nop.Services.Events;
|
|
using Nop.Services.Plugins;
|
|
using Nop.Web.Framework.Models.Cms;
|
|
|
|
namespace Nop.Web.Infrastructure.Cache;
|
|
|
|
/// <summary>
|
|
/// Model cache event consumer (used for caching of presentation layer models)
|
|
/// </summary>
|
|
public partial class ModelCacheEventConsumer :
|
|
//languages
|
|
IConsumer<EntityInsertedEvent<Language>>,
|
|
IConsumer<EntityUpdatedEvent<Language>>,
|
|
IConsumer<EntityDeletedEvent<Language>>,
|
|
//settings
|
|
IConsumer<EntityUpdatedEvent<Setting>>,
|
|
//manufacturers
|
|
IConsumer<EntityInsertedEvent<Manufacturer>>,
|
|
IConsumer<EntityUpdatedEvent<Manufacturer>>,
|
|
IConsumer<EntityDeletedEvent<Manufacturer>>,
|
|
//vendors
|
|
IConsumer<EntityInsertedEvent<Vendor>>,
|
|
IConsumer<EntityUpdatedEvent<Vendor>>,
|
|
IConsumer<EntityDeletedEvent<Vendor>>,
|
|
//categories
|
|
IConsumer<EntityInsertedEvent<Category>>,
|
|
IConsumer<EntityUpdatedEvent<Category>>,
|
|
IConsumer<EntityDeletedEvent<Category>>,
|
|
//product categories
|
|
IConsumer<EntityInsertedEvent<ProductCategory>>,
|
|
IConsumer<EntityDeletedEvent<ProductCategory>>,
|
|
//products
|
|
IConsumer<EntityInsertedEvent<Product>>,
|
|
IConsumer<EntityUpdatedEvent<Product>>,
|
|
IConsumer<EntityDeletedEvent<Product>>,
|
|
//product tags
|
|
IConsumer<EntityInsertedEvent<ProductTag>>,
|
|
IConsumer<EntityUpdatedEvent<ProductTag>>,
|
|
IConsumer<EntityDeletedEvent<ProductTag>>,
|
|
//Product attribute values
|
|
IConsumer<EntityUpdatedEvent<ProductAttributeValue>>,
|
|
//Topics
|
|
IConsumer<EntityInsertedEvent<Topic>>,
|
|
IConsumer<EntityUpdatedEvent<Topic>>,
|
|
IConsumer<EntityDeletedEvent<Topic>>,
|
|
//Orders
|
|
IConsumer<EntityInsertedEvent<Order>>,
|
|
IConsumer<EntityUpdatedEvent<Order>>,
|
|
IConsumer<EntityDeletedEvent<Order>>,
|
|
//Picture
|
|
IConsumer<EntityInsertedEvent<Picture>>,
|
|
IConsumer<EntityUpdatedEvent<Picture>>,
|
|
IConsumer<EntityDeletedEvent<Picture>>,
|
|
//Product picture mapping
|
|
IConsumer<EntityInsertedEvent<ProductPicture>>,
|
|
IConsumer<EntityUpdatedEvent<ProductPicture>>,
|
|
IConsumer<EntityDeletedEvent<ProductPicture>>,
|
|
//Product review
|
|
IConsumer<EntityDeletedEvent<ProductReview>>,
|
|
//polls
|
|
IConsumer<EntityInsertedEvent<Poll>>,
|
|
IConsumer<EntityUpdatedEvent<Poll>>,
|
|
IConsumer<EntityDeletedEvent<Poll>>,
|
|
//blog posts
|
|
IConsumer<EntityInsertedEvent<BlogPost>>,
|
|
IConsumer<EntityUpdatedEvent<BlogPost>>,
|
|
IConsumer<EntityDeletedEvent<BlogPost>>,
|
|
//news items
|
|
IConsumer<EntityInsertedEvent<NewsItem>>,
|
|
IConsumer<EntityUpdatedEvent<NewsItem>>,
|
|
IConsumer<EntityDeletedEvent<NewsItem>>,
|
|
//shopping cart items
|
|
IConsumer<EntityUpdatedEvent<ShoppingCartItem>>,
|
|
//plugins
|
|
IConsumer<PluginUpdatedEvent>
|
|
{
|
|
#region Fields
|
|
|
|
protected readonly CatalogSettings _catalogSettings;
|
|
protected readonly IStaticCacheManager _staticCacheManager;
|
|
|
|
#endregion
|
|
|
|
#region Ctor
|
|
|
|
public ModelCacheEventConsumer(CatalogSettings catalogSettings, IStaticCacheManager staticCacheManager)
|
|
{
|
|
_staticCacheManager = staticCacheManager;
|
|
_catalogSettings = catalogSettings;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Methods
|
|
|
|
#region Languages
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityInsertedEvent<Language> eventMessage)
|
|
{
|
|
//clear all localizable models
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.ManufacturerNavigationPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.CategoryAllPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.CategoryXmlAllPrefixCacheKey);
|
|
}
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityUpdatedEvent<Language> eventMessage)
|
|
{
|
|
//clear all localizable models
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.ManufacturerNavigationPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.CategoryAllPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.CategoryXmlAllPrefixCacheKey);
|
|
}
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityDeletedEvent<Language> eventMessage)
|
|
{
|
|
//clear all localizable models
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.ManufacturerNavigationPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.CategoryAllPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.CategoryXmlAllPrefixCacheKey);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Setting
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityUpdatedEvent<Setting> eventMessage)
|
|
{
|
|
//clear models which depend on settings
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.ManufacturerNavigationPrefixCacheKey); //depends on CatalogSettings.ManufacturersBlockItemsToDisplay
|
|
await _staticCacheManager.RemoveAsync(NopModelCacheDefaults.VendorNavigationModelKey); //depends on VendorSettings.VendorBlockItemsToDisplay
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.CategoryAllPrefixCacheKey); //depends on CatalogSettings.ShowCategoryProductNumber and CatalogSettings.ShowCategoryProductNumberIncludingSubcategories
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.CategoryXmlAllPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.HomepageBestsellersIdsPrefixCacheKey); //depends on CatalogSettings.NumberOfBestsellersOnHomepage
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.ProductsAlsoPurchasedIdsPrefixCacheKey); //depends on CatalogSettings.ProductsAlsoPurchasedNumber
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.BlogPrefixCacheKey); //depends on BlogSettings.NumberOfTags
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.NewsPrefixCacheKey); //depends on NewsSettings.MainPageNewsCount
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.SitemapPrefixCacheKey); //depends on distinct sitemap settings
|
|
await _staticCacheManager.RemoveByPrefixAsync(WidgetModelDefaults.WidgetPrefixCacheKey); //depends on WidgetSettings and certain settings of widgets
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.StoreLogoPathPrefixCacheKey); //depends on StoreInformationSettings.LogoPictureId
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Vendors
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityInsertedEvent<Vendor> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveAsync(NopModelCacheDefaults.VendorNavigationModelKey);
|
|
}
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityUpdatedEvent<Vendor> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveAsync(NopModelCacheDefaults.VendorNavigationModelKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(string.Format(NopModelCacheDefaults.VendorPicturePrefixCacheKeyById, eventMessage.Entity.Id));
|
|
await _staticCacheManager.RemoveByPrefixAsync(string.Format(NopModelCacheDefaults.VendorReviewsByVendorIdPrefixCacheKey, eventMessage.Entity.Id));
|
|
}
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityDeletedEvent<Vendor> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveAsync(NopModelCacheDefaults.VendorNavigationModelKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(string.Format(NopModelCacheDefaults.VendorReviewsByVendorIdPrefixCacheKey, eventMessage.Entity.Id));
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Manufacturers
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityInsertedEvent<Manufacturer> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.ManufacturerNavigationPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.SitemapPrefixCacheKey);
|
|
}
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityUpdatedEvent<Manufacturer> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.ManufacturerNavigationPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.SitemapPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(string.Format(NopModelCacheDefaults.ManufacturerPicturePrefixCacheKeyById, eventMessage.Entity.Id));
|
|
}
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityDeletedEvent<Manufacturer> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.ManufacturerNavigationPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.SitemapPrefixCacheKey);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Categories
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityInsertedEvent<Category> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.CategoryAllPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.CategoryXmlAllPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.CategoryHomepagePrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.SitemapPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.SearchBoxCategoryListPrefixCacheKey);
|
|
}
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityUpdatedEvent<Category> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.CategoryAllPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.CategoryXmlAllPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.CategoryHomepagePrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.SitemapPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(string.Format(NopModelCacheDefaults.CategoryPicturePrefixCacheKeyById, eventMessage.Entity.Id));
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.SearchBoxCategoryListPrefixCacheKey);
|
|
}
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityDeletedEvent<Category> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.CategoryAllPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.CategoryXmlAllPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.CategoryHomepagePrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.SitemapPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.SearchBoxCategoryListPrefixCacheKey);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Product categories
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityInsertedEvent<ProductCategory> eventMessage)
|
|
{
|
|
if (_catalogSettings.ShowCategoryProductNumber)
|
|
{
|
|
//depends on CatalogSettings.ShowCategoryProductNumber (when enabled)
|
|
//so there's no need to clear this cache in other cases
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.CategoryAllPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.CategoryXmlAllPrefixCacheKey);
|
|
}
|
|
}
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityDeletedEvent<ProductCategory> eventMessage)
|
|
{
|
|
if (_catalogSettings.ShowCategoryProductNumber)
|
|
{
|
|
//depends on CatalogSettings.ShowCategoryProductNumber (when enabled)
|
|
//so there's no need to clear this cache in other cases
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.CategoryAllPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.CategoryXmlAllPrefixCacheKey);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Products
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityInsertedEvent<Product> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.SitemapPrefixCacheKey);
|
|
}
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityUpdatedEvent<Product> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.HomepageBestsellersIdsPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.ProductsAlsoPurchasedIdsPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.SitemapPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(string.Format(NopModelCacheDefaults.ProductReviewsPrefixCacheKeyById, eventMessage.Entity.Id));
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.VendorReviewsPrefixCacheKey);
|
|
}
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityDeletedEvent<Product> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.HomepageBestsellersIdsPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.ProductsAlsoPurchasedIdsPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.SitemapPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.VendorReviewsPrefixCacheKey);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Product tags
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityInsertedEvent<ProductTag> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.SitemapPrefixCacheKey);
|
|
}
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityUpdatedEvent<ProductTag> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.SitemapPrefixCacheKey);
|
|
}
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityDeletedEvent<ProductTag> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.SitemapPrefixCacheKey);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Product attributes
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityUpdatedEvent<ProductAttributeValue> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.ProductAttributePicturePrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.ProductAttributeImageSquarePicturePrefixCacheKey);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Topics
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityInsertedEvent<Topic> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.SitemapPrefixCacheKey);
|
|
}
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityUpdatedEvent<Topic> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.SitemapPrefixCacheKey);
|
|
}
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityDeletedEvent<Topic> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.SitemapPrefixCacheKey);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Orders
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityInsertedEvent<Order> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.HomepageBestsellersIdsPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.ProductsAlsoPurchasedIdsPrefixCacheKey);
|
|
}
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityUpdatedEvent<Order> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.HomepageBestsellersIdsPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.ProductsAlsoPurchasedIdsPrefixCacheKey);
|
|
}
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityDeletedEvent<Order> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.HomepageBestsellersIdsPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.ProductsAlsoPurchasedIdsPrefixCacheKey);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Pictures
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityInsertedEvent<Picture> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.ProductAttributePicturePrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.CartPicturePrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.OrderPicturePrefixCacheKey);
|
|
}
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityUpdatedEvent<Picture> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.ProductAttributePicturePrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.CartPicturePrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.OrderPicturePrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.ProductDetailsPicturesPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.ProductOverviewPicturesPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.CategoryPicturePrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.ManufacturerPicturePrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.VendorPicturePrefixCacheKey);
|
|
}
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityDeletedEvent<Picture> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.ProductAttributePicturePrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.CartPicturePrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.OrderPicturePrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.ProductDetailsPicturesPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.ProductOverviewPicturesPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.CategoryPicturePrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.ManufacturerPicturePrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.VendorPicturePrefixCacheKey);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Product picture mappings
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityInsertedEvent<ProductPicture> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(string.Format(NopModelCacheDefaults.ProductOverviewPicturesPrefixCacheKeyById, eventMessage.Entity.ProductId));
|
|
await _staticCacheManager.RemoveByPrefixAsync(string.Format(NopModelCacheDefaults.ProductDetailsPicturesPrefixCacheKeyById, eventMessage.Entity.ProductId));
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.ProductAttributePicturePrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.CartPicturePrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.OrderPicturePrefixCacheKey);
|
|
}
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityUpdatedEvent<ProductPicture> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(string.Format(NopModelCacheDefaults.ProductOverviewPicturesPrefixCacheKeyById, eventMessage.Entity.ProductId));
|
|
await _staticCacheManager.RemoveByPrefixAsync(string.Format(NopModelCacheDefaults.ProductDetailsPicturesPrefixCacheKeyById, eventMessage.Entity.ProductId));
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.ProductAttributePicturePrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.CartPicturePrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.OrderPicturePrefixCacheKey);
|
|
}
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityDeletedEvent<ProductPicture> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(string.Format(NopModelCacheDefaults.ProductOverviewPicturesPrefixCacheKeyById, eventMessage.Entity.ProductId));
|
|
await _staticCacheManager.RemoveByPrefixAsync(string.Format(NopModelCacheDefaults.ProductDetailsPicturesPrefixCacheKeyById, eventMessage.Entity.ProductId));
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.ProductAttributePicturePrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.CartPicturePrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.OrderPicturePrefixCacheKey);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Polls
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityInsertedEvent<Poll> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.PollsPrefixCacheKey);
|
|
}
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityUpdatedEvent<Poll> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.PollsPrefixCacheKey);
|
|
}
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityDeletedEvent<Poll> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.PollsPrefixCacheKey);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Blog posts
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityInsertedEvent<BlogPost> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.BlogPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.SitemapPrefixCacheKey);
|
|
}
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityUpdatedEvent<BlogPost> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.BlogPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.SitemapPrefixCacheKey);
|
|
}
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityDeletedEvent<BlogPost> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.BlogPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.SitemapPrefixCacheKey);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region News items
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityInsertedEvent<NewsItem> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.NewsPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.SitemapPrefixCacheKey);
|
|
}
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityUpdatedEvent<NewsItem> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.NewsPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.SitemapPrefixCacheKey);
|
|
}
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityDeletedEvent<NewsItem> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.NewsPrefixCacheKey);
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.SitemapPrefixCacheKey);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Shopping cart items
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityUpdatedEvent<ShoppingCartItem> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.CartPicturePrefixCacheKey);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Product reviews
|
|
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(EntityDeletedEvent<ProductReview> eventMessage)
|
|
{
|
|
await _staticCacheManager.RemoveByPrefixAsync(string.Format(NopModelCacheDefaults.ProductReviewsPrefixCacheKeyById, eventMessage.Entity.ProductId));
|
|
await _staticCacheManager.RemoveByPrefixAsync(NopModelCacheDefaults.VendorReviewsPrefixCacheKey);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Plugin
|
|
|
|
/// <summary>
|
|
/// Handle plugin updated event
|
|
/// </summary>
|
|
/// <param name="eventMessage">Event message</param>
|
|
/// <returns>A task that represents the asynchronous operation</returns>
|
|
public async Task HandleEventAsync(PluginUpdatedEvent eventMessage)
|
|
{
|
|
if (eventMessage?.Plugin?.Instance<IWidgetPlugin>() != null)
|
|
await _staticCacheManager.RemoveByPrefixAsync(WidgetModelDefaults.WidgetPrefixCacheKey);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
} |