/// <summary> /// Handle model received event /// </summary> /// <param name="eventMessage">Event message</param> public void HandleEvent(ModelReceivedEvent <BaseNopModel> eventMessage) { //whether received model is ScheduleTaskModel if (!(eventMessage?.Model is ScheduleTaskModel scheduleTaskModel)) { return; } //whether renew access token task is changed var scheduleTask = _scheduleTaskService.GetTaskById(scheduleTaskModel.Id); if (!scheduleTask?.Type.Equals(SquarePaymentDefaults.RenewAccessTokenTask) ?? true) { return; } //check token renewal limit var accessTokenRenewalPeriod = scheduleTaskModel.Seconds / 60 / 60 / 24; if (accessTokenRenewalPeriod > SquarePaymentDefaults.AccessTokenRenewalPeriodMax) { var error = string.Format(_localizationService.GetResource("Plugins.Payments.Square.AccessTokenRenewalPeriod.Error"), SquarePaymentDefaults.AccessTokenRenewalPeriodMax, SquarePaymentDefaults.AccessTokenRenewalPeriodRecommended); eventMessage.ModelState.AddModelError(string.Empty, error); } }
/// <summary> /// Handle model received event /// </summary> /// <param name="eventMessage">Event message</param> /// <returns>A task that represents the asynchronous operation</returns> public async Task HandleEventAsync(ModelReceivedEvent <BaseNopModel> eventMessage) { if (eventMessage.Model is not CheckoutBillingAddressModel && eventMessage.Model is not CheckoutShippingAddressModel) { return; } var customer = await _workContext.GetCurrentCustomerAsync(); if (!await _widgetPluginManager.IsPluginActiveAsync(What3wordsDefaults.SystemName, customer)) { return; } if (!_what3WordsSettings.Enabled) { return; } //cache the value within the request, we save it to the address later var form = _httpContextAccessor.HttpContext.Request.Form; if (form.TryGetValue(What3wordsDefaults.ComponentName, out var addressValue) && !StringValues.IsNullOrEmpty(addressValue)) { _httpContextAccessor.HttpContext.Items[What3wordsDefaults.AddressValueAttribute] = addressValue.ToString().TrimStart('/'); } }
/// <summary> /// Handle model received event /// </summary> /// <param name="eventMessage">Event message</param> /// <returns>A task that represents the asynchronous operation</returns> public async Task HandleEventAsync(ModelReceivedEvent <BaseNopModel> eventMessage) { if (eventMessage.Model is not ProductModel model) { return; } if (!await _shippingPluginManager.IsPluginActiveAsync(EasyPostDefaults.SystemName)) { return; } if (!await _permissionService.AuthorizeAsync(StandardPermissionProvider.ManageShippingSettings)) { return; } var product = await _productService.GetProductByIdAsync(model.Id); if (product is null) { return; } //try to get additional form values for the product var form = _httpContextAccessor.HttpContext.Request.Form; if (form.TryGetValue(EasyPostDefaults.ProductPredefinedPackageFormKey, out var predefinedPackageValue)) { var predefinedPackage = !StringValues.IsNullOrEmpty(predefinedPackageValue) ? predefinedPackageValue.ToString() : null; await _genericAttributeService.SaveAttributeAsync(product, EasyPostDefaults.ProductPredefinedPackageAttribute, predefinedPackage); } if (form.TryGetValue(EasyPostDefaults.ProductHtsNumberFormKey, out var htsNumberValue)) { var htsNumber = !StringValues.IsNullOrEmpty(htsNumberValue) ? htsNumberValue.ToString() : null; await _genericAttributeService.SaveAttributeAsync(product, EasyPostDefaults.ProductHtsNumberAttribute, htsNumber); } if (form.TryGetValue(EasyPostDefaults.ProductOriginCountryFormKey, out var originCountryValue)) { var originCountry = !StringValues.IsNullOrEmpty(originCountryValue) ? originCountryValue.ToString() : null; await _genericAttributeService.SaveAttributeAsync(product, EasyPostDefaults.ProductOriginCountryAttribute, originCountry); } }
public async Task HandleEventAsync(ModelReceivedEvent <BaseNopModel> eventMessage) { //whether received model is ScheduleTaskModel if (!(eventMessage?.Model is ScheduleTaskModel scheduleTaskModel)) { return; } var cronTasks = await _cronTaskService.GetCronTasksAsync(); if (!cronTasks.ContainsKey(scheduleTaskModel.Id)) { return; } //check task interval if cron task has proper state if (scheduleTaskModel.Enabled) { var error = await _localizationService.GetResourceAsync("EllaSoftware.Plugin.Misc.CronTasks.ScheduleTask.RemoveCronTaskBeforeEnable"); eventMessage.ModelState.AddModelError(string.Empty, error); } }
/// <summary> /// Handle model received event /// </summary> /// <param name="eventMessage">Event message</param> /// <returns>A task that represents the asynchronous operation</returns> public async Task HandleEventAsync(ModelReceivedEvent <BaseNopModel> eventMessage) { //get entity by received model var entity = eventMessage.Model switch { CustomerModel customerModel => (BaseEntity)await _customerService.GetCustomerByIdAsync(customerModel.Id), CustomerRoleModel customerRoleModel => await _customerService.GetCustomerRoleByIdAsync(customerRoleModel.Id), ProductModel productModel => await _productService.GetProductByIdAsync(productModel.Id), CheckoutAttributeModel checkoutAttributeModel => await _checkoutAttributeService.GetCheckoutAttributeByIdAsync(checkoutAttributeModel.Id), _ => null }; if (entity == null) { return; } //ensure that Avalara tax provider is active if (!await _taxPluginManager.IsPluginActiveAsync(AvalaraTaxDefaults.SystemName)) { return; } if (!await _permissionService.AuthorizeAsync(StandardPermissionProvider.ManageTaxSettings)) { return; } //whether there is a form value for the entity use code if (_httpContextAccessor.HttpContext.Request.Form.TryGetValue(AvalaraTaxDefaults.EntityUseCodeAttribute, out var entityUseCodeValue) && !StringValues.IsNullOrEmpty(entityUseCodeValue)) { //save attribute var entityUseCode = !entityUseCodeValue.ToString().Equals(Guid.Empty.ToString()) ? entityUseCodeValue.ToString() : null; await _genericAttributeService.SaveAttributeAsync(entity, AvalaraTaxDefaults.EntityUseCodeAttribute, entityUseCode); } }
/// <summary> /// Handle model received event /// </summary> /// <param name="eventMessage">Event message</param> public void HandleEvent(ModelReceivedEvent <BaseNopModel> eventMessage) { SaveEntityUseCode(eventMessage?.Model as BaseNopEntityModel); SaveTaxOriginAddressType(eventMessage?.Model as TaxSettingsModel); }