/// <summary> /// Handle product details model prepared event /// </summary> /// <param name="eventMessage">Event message</param> public void HandleEvent(ModelPreparedEvent <BaseNopModel> eventMessage) { if (eventMessage?.Model is ProductDetailsModel productDetailsModel) { _facebookPixelService.PrepareViewContentScript(productDetailsModel); } }
/// <summary> /// Handle product details model prepared event /// </summary> /// <param name="eventMessage">Event message</param> public async Task HandleEventAsync(ModelPreparedEvent <BaseNopModel> eventMessage) { if (eventMessage?.Model is ProductDetailsModel productDetailsModel) { await _facebookPixelService.PrepareViewContentScriptAsync(productDetailsModel); } }
public void HandleEvent(ModelPreparedEvent <BaseNopModel> eventMessage) { if (eventMessage.Model is ProductModel) { _newProductsService.UpdateProductModel((ProductModel)eventMessage.Model); } }
/// <summary> /// Handle model prepared event /// </summary> /// <param name="eventMessage">Event message</param> /// <returns>A task that represents the asynchronous operation</returns> public async Task HandleEventAsync(ModelPreparedEvent <BaseNopModel> eventMessage) { var customerModel = eventMessage.Model as CustomerInfoModel; var navigationModel = eventMessage.Model as CustomerNavigationModel; if (customerModel is null && navigationModel is null) { return; } //ensure that Avalara tax provider is active for the passed customer, since it's the event from the public area var customer = await _workContext.GetCurrentCustomerAsync(); if (!await _taxPluginManager.IsPluginActiveAsync(AvalaraTaxDefaults.SystemName, customer)) { return; } if (!_avalaraTaxSettings.EnableCertificates) { return; } if (navigationModel is not null) { //ACL if (_avalaraTaxSettings.CustomerRoleIds.Any()) { var customerRoleIds = await _customerService.GetCustomerRoleIdsAsync(customer); if (!customerRoleIds.Intersect(_avalaraTaxSettings.CustomerRoleIds).Any()) { return; } } var infoItem = navigationModel.CustomerNavigationItems.FirstOrDefault(item => item.Tab == CustomerNavigationEnum.Info); var position = navigationModel.CustomerNavigationItems.IndexOf(infoItem) + 1; navigationModel.CustomerNavigationItems.Insert(position, new CustomerNavigationItemModel { RouteName = AvalaraTaxDefaults.ExemptionCertificatesRouteName, ItemClass = AvalaraTaxDefaults.ExemptionCertificatesMenuClassName, //since we can neither extend enum nor use the default value (e.g. null or 0), we set the least used element //Tab = AvalaraTaxDefaults.ExemptionCertificatesMenuTab, Tab = CustomerNavigationEnum.ForumSubscriptions, Title = await _localizationService.GetResourceAsync("Plugins.Tax.Avalara.ExemptionCertificates") }); } if (customerModel is not null && !_avalaraTaxSettings.AllowEditCustomer) { await _avalaraTaxManager.CreateOrUpdateCustomerAsync(customer); } }