Exemple #1
0
        public ActionResult Edit(string systemName)
        {
            if (!_services.Permissions.Authorize(StandardPermissionProvider.ManagePaymentMethods))
            {
                return(AccessDeniedView());
            }

            var provider      = _paymentService.LoadPaymentMethodBySystemName(systemName);
            var paymentMethod = _paymentService.GetPaymentMethodBySystemName(systemName);

            var model         = new PaymentMethodEditModel();
            var providerModel = _pluginMediator.ToProviderModel <IPaymentMethod, ProviderModel>(provider, true);

            model.SystemName   = providerModel.SystemName;
            model.IconUrl      = providerModel.IconUrl;
            model.FriendlyName = providerModel.FriendlyName;
            model.Description  = providerModel.Description;

            AddLocales(_languageService, model.Locales, (locale, languageId) =>
            {
                locale.FriendlyName = _pluginMediator.GetLocalizedFriendlyName(provider.Metadata, languageId, false);
                locale.Description  = _pluginMediator.GetLocalizedDescription(provider.Metadata, languageId, false);

                if (paymentMethod != null)
                {
                    locale.FullDescription = paymentMethod.GetLocalized(x => x.FullDescription, languageId, false, false);
                }
            });

            PreparePaymentMethodEditModel(model, paymentMethod);

            return(View(model));
        }
Exemple #2
0
        public ActionResult Edit(string systemName, bool continueEditing, PaymentMethodEditModel model, FormCollection form)
        {
            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.FullDescription        = model.FullDescription;
            paymentMethod.RoundOrderTotalEnabled = model.RoundOrderTotalEnabled;

            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);
            }

            _services.EventPublisher.Publish(new ModelBoundEvent(model, paymentMethod, form));

            NotifySuccess(T("Admin.Common.DataEditSuccess"));

            return(continueEditing ?
                   RedirectToAction("Edit", "Payment", new { systemName = systemName }) :
                   RedirectToAction("Providers", "Payment"));
        }

        #endregion
    }
Exemple #3
0
        public ActionResult Edit(string systemName, bool continueEditing, PaymentMethodEditModel model, FormCollection form)
        {
            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.FullDescription        = model.FullDescription;
            paymentMethod.RoundOrderTotalEnabled = model.RoundOrderTotalEnabled;
            paymentMethod.LimitedToStores        = model.LimitedToStores;

            if (paymentMethod.Id == 0)
            {
                // Update permission sufficient here.
                _paymentService.InsertPaymentMethod(paymentMethod);
            }
            else
            {
                _paymentService.UpdatePaymentMethod(paymentMethod);
            }

            SaveStoreMappings(paymentMethod, model.SelectedStoreIds);

            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);
            }

            Services.EventPublisher.Publish(new ModelBoundEvent(model, paymentMethod, form));

            NotifySuccess(T("Admin.Common.DataEditSuccess"));

            return(continueEditing ?
                   RedirectToAction("Edit", "Payment", new { systemName }) :
                   RedirectToAction("Providers", "Payment"));
        }
Exemple #4
0
        private void PreparePaymentMethodEditModel(PaymentMethodEditModel model, PaymentMethod paymentMethod)
        {
            var allFilters = _paymentService.GetAllPaymentMethodFilters();

            model.FilterConfigurationUrls = allFilters
                                            .Select(x => "'" + x.GetConfigurationUrl(model.SystemName) + "'")
                                            .OrderBy(x => x)
                                            .ToList();

            if (paymentMethod != null)
            {
                model.Id = paymentMethod.Id;
                model.FullDescription = paymentMethod.FullDescription;
            }
        }
        public ActionResult Edit(string systemName)
        {
            var provider      = _paymentService.LoadPaymentMethodBySystemName(systemName);
            var paymentMethod = _paymentService.GetPaymentMethodBySystemName(systemName);

            var model         = new PaymentMethodEditModel();
            var providerModel = _pluginMediator.ToProviderModel <IPaymentMethod, ProviderModel>(provider, true);
            var pageTitle     = providerModel.FriendlyName;

            model.SystemName       = providerModel.SystemName;
            model.IconUrl          = providerModel.IconUrl;
            model.FriendlyName     = providerModel.FriendlyName;
            model.Description      = providerModel.Description;
            model.SelectedStoreIds = _storeMappingService.GetStoresIdsWithAccess(paymentMethod);

            if (paymentMethod != null)
            {
                model.Id = paymentMethod.Id;
                model.FullDescription        = paymentMethod.FullDescription;
                model.RoundOrderTotalEnabled = paymentMethod.RoundOrderTotalEnabled;
                model.LimitedToStores        = paymentMethod.LimitedToStores;
                model.SelectedRuleSetIds     = paymentMethod.RuleSets.Select(x => x.Id).ToArray();
            }

            AddLocales(_languageService, model.Locales, (locale, languageId) =>
            {
                locale.FriendlyName = _pluginMediator.GetLocalizedFriendlyName(provider.Metadata, languageId, false);
                locale.Description  = _pluginMediator.GetLocalizedDescription(provider.Metadata, languageId, false);

                if (pageTitle.IsEmpty() && languageId == Services.WorkContext.WorkingLanguage.Id)
                {
                    pageTitle = locale.FriendlyName;
                }

                if (paymentMethod != null)
                {
                    locale.FullDescription = paymentMethod.GetLocalized(x => x.FullDescription, languageId, false, false);
                }
            });

            ViewBag.Title = pageTitle;

            return(View(model));
        }
Exemple #6
0
        private void PreparePaymentMethodEditModel(PaymentMethodEditModel model, PaymentMethod paymentMethod)
        {
            var allFilters = _paymentService.GetAllPaymentMethodFilters();
            var configUrls = allFilters
                             .Select(x => x.GetConfigurationUrl(model.SystemName))
                             .Where(x => x.HasValue())
                             .ToList();

            model.FilterConfigurationUrls = configUrls
                                            .Select(x => string.Concat("'", x, "'"))
                                            .OrderBy(x => x)
                                            .ToList();

            if (paymentMethod != null)
            {
                model.Id = paymentMethod.Id;
                model.FullDescription        = paymentMethod.FullDescription;
                model.RoundOrderTotalEnabled = paymentMethod.RoundOrderTotalEnabled;
                model.LimitedToStores        = paymentMethod.LimitedToStores;
            }

            model.SelectedStoreIds = _storeMappingService.GetStoresIdsWithAccess(paymentMethod);
        }
Exemple #7
0
        public ActionResult Edit(string systemName)
        {
            var provider      = _paymentService.LoadPaymentMethodBySystemName(systemName);
            var paymentMethod = _paymentService.GetPaymentMethodBySystemName(systemName);

            var model         = new PaymentMethodEditModel();
            var providerModel = _pluginMediator.ToProviderModel <IPaymentMethod, ProviderModel>(provider, true);
            var pageTitle     = providerModel.FriendlyName;

            model.SystemName   = providerModel.SystemName;
            model.IconUrl      = providerModel.IconUrl;
            model.FriendlyName = providerModel.FriendlyName;
            model.Description  = providerModel.Description;

            AddLocales(_languageService, model.Locales, (locale, languageId) =>
            {
                locale.FriendlyName = _pluginMediator.GetLocalizedFriendlyName(provider.Metadata, languageId, false);
                locale.Description  = _pluginMediator.GetLocalizedDescription(provider.Metadata, languageId, false);

                if (pageTitle.IsEmpty() && languageId == Services.WorkContext.WorkingLanguage.Id)
                {
                    pageTitle = locale.FriendlyName;
                }

                if (paymentMethod != null)
                {
                    locale.FullDescription = paymentMethod.GetLocalized(x => x.FullDescription, languageId, false, false);
                }
            });

            PreparePaymentMethodEditModel(model, paymentMethod);

            ViewBag.Title = pageTitle;

            return(View(model));
        }
        public ActionResult Edit(string systemName)
        {
            if (!_services.Permissions.Authorize(StandardPermissionProvider.ManagePaymentMethods))
                return AccessDeniedView();

            var provider = _paymentService.LoadPaymentMethodBySystemName(systemName);
            var paymentMethod = _paymentService.GetPaymentMethodBySystemName(systemName);

            var model = new PaymentMethodEditModel();
            var providerModel = _pluginMediator.ToProviderModel<IPaymentMethod, ProviderModel>(provider, true);

            model.SystemName = providerModel.SystemName;
            model.IconUrl = providerModel.IconUrl;
            model.FriendlyName = providerModel.FriendlyName;
            model.Description = providerModel.Description;

            AddLocales(_languageService, model.Locales, (locale, languageId) =>
            {
                locale.FriendlyName = _pluginMediator.GetLocalizedFriendlyName(provider.Metadata, languageId, false);
                locale.Description = _pluginMediator.GetLocalizedDescription(provider.Metadata, languageId, false);

                if (paymentMethod != null)
                {
                    locale.FullDescription = paymentMethod.GetLocalized(x => x.FullDescription, languageId, false, false);
                }
            });

            PreparePaymentMethodEditModel(model, paymentMethod);

            return View(model);
        }
        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;
            }
        }
        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"));
        }