private void PreparePaymentMethodEditModel(PaymentMethodEditModel model, PaymentMethod paymentMethod) { var customerRoles = _customerService.GetAllCustomerRoles(true); var shippingMethods = _shippingService.GetAllShippingMethods(); var countries = _countryService.GetAllCountries(true); model.AvailableCustomerRoles = new List<SelectListItem>(); model.AvailableShippingMethods = new List<SelectListItem>(); model.AvailableCountries = new List<SelectListItem>(); model.AvailableCountryExclusionContextTypes = CountryRestrictionContextType.BillingAddress.ToSelectList(false).ToList(); model.AvailableAmountRestrictionContextTypes = AmountRestrictionContextType.SubtotalAmount.ToSelectList(false).ToList(); foreach (var role in customerRoles.OrderBy(x => x.Name)) { model.AvailableCustomerRoles.Add(new SelectListItem { Text = role.Name, Value = role.Id.ToString() }); } foreach (var shippingMethod in shippingMethods.OrderBy(x => x.Name)) { model.AvailableShippingMethods.Add(new SelectListItem { Text = shippingMethod.GetLocalized(x => x.Name), Value = shippingMethod.Id.ToString() }); } foreach (var country in countries.OrderBy(x => x.Name)) { model.AvailableCountries.Add(new SelectListItem { Text = country.GetLocalized(x => x.Name), Value = country.Id.ToString() }); } if (paymentMethod != null) { model.ExcludedCustomerRoleIds = paymentMethod.ExcludedCustomerRoleIds.SplitSafe(","); model.ExcludedShippingMethodIds = paymentMethod.ExcludedShippingMethodIds.SplitSafe(","); model.ExcludedCountryIds = paymentMethod.ExcludedCountryIds.SplitSafe(","); model.MinimumOrderAmount = paymentMethod.MinimumOrderAmount; model.MaximumOrderAmount = paymentMethod.MaximumOrderAmount; model.CountryExclusionContext = paymentMethod.CountryExclusionContext; model.AmountRestrictionContext = paymentMethod.AmountRestrictionContext; model.FullDescription = paymentMethod.FullDescription; } }
/// <summary> /// Updates payment method extra data /// </summary> /// <param name="paymentMethod">Payment method</param> public virtual void UpdatePaymentMethod(PaymentMethod paymentMethod) { if (paymentMethod == null) throw new ArgumentNullException("paymentMethod"); _paymentMethodRepository.Update(paymentMethod); _services.EventPublisher.EntityUpdated(paymentMethod); }
public ActionResult Edit(string systemName, bool continueEditing, PaymentMethodEditModel model) { if (!_services.Permissions.Authorize(StandardPermissionProvider.ManagePaymentMethods)) return AccessDeniedView(); var provider = _paymentService.LoadPaymentMethodBySystemName(systemName); if (provider == null) return HttpNotFound(); _pluginMediator.SetSetting(provider.Metadata, "FriendlyName", model.FriendlyName); _pluginMediator.SetSetting(provider.Metadata, "Description", model.Description); var paymentMethod = _paymentService.GetPaymentMethodBySystemName(systemName); if (paymentMethod == null) paymentMethod = new PaymentMethod { PaymentMethodSystemName = systemName }; paymentMethod.ExcludedCustomerRoleIds = Request.Form["ExcludedCustomerRoleIds"]; paymentMethod.ExcludedShippingMethodIds = Request.Form["ExcludedShippingMethodIds"]; paymentMethod.ExcludedCountryIds = Request.Form["ExcludedCountryIds"]; paymentMethod.MinimumOrderAmount = model.MinimumOrderAmount; paymentMethod.MaximumOrderAmount = model.MaximumOrderAmount; paymentMethod.CountryExclusionContext = model.CountryExclusionContext; paymentMethod.AmountRestrictionContext = model.AmountRestrictionContext; paymentMethod.FullDescription = model.FullDescription; if (paymentMethod.Id == 0) _paymentService.InsertPaymentMethod(paymentMethod); else _paymentService.UpdatePaymentMethod(paymentMethod); foreach (var localized in model.Locales) { _pluginMediator.SaveLocalizedValue(provider.Metadata, localized.LanguageId, "FriendlyName", localized.FriendlyName); _pluginMediator.SaveLocalizedValue(provider.Metadata, localized.LanguageId, "Description", localized.Description); _localizedEntityService.SaveLocalizedValue(paymentMethod, x => x.FullDescription, localized.FullDescription, localized.LanguageId); } NotifySuccess(_services.Localization.GetResource("Admin.Common.DataEditSuccess")); return (continueEditing ? RedirectToAction("Edit", "Payment", new { systemName = systemName }) : RedirectToAction("Providers", "Payment")); }