using Nop.Core.Domain.Discounts; using Nop.Core.Events; using Nop.Services.Configuration; using Nop.Services.Events; namespace Nop.Plugin.DiscountRules.CustomerRoles.Infrastructure.Cache; /// /// Discount requirement rule event consumer (used for removing unused settings) /// public class DiscountRequirementEventConsumer : IConsumer> { #region Fields protected readonly ISettingService _settingService; #endregion #region Ctor public DiscountRequirementEventConsumer(ISettingService settingService) { _settingService = settingService; } #endregion #region Methods /// /// Handle discount requirement deleted event /// /// Event message /// A task that represents the asynchronous operation public async Task HandleEventAsync(EntityDeletedEvent eventMessage) { var discountRequirement = eventMessage?.Entity; if (discountRequirement == null) return; //delete saved restricted customer role identifier if exists var setting = await _settingService.GetSettingAsync(string.Format(DiscountRequirementDefaults.SettingsKey, discountRequirement.Id)); if (setting != null) await _settingService.DeleteSettingAsync(setting); } #endregion }