public ActionResult EditProviderPopup(string systemName) { var provider = _providerManager.GetProvider(systemName); if (provider == null) { return(HttpNotFound()); } var infos = GetProviderInfos(provider); if (infos.ReadPermission.HasValue() && !Services.Permissions.Authorize(infos.ReadPermission)) { return(AccessDeniedPartialView()); } var model = _pluginMediator.ToProviderModel(provider, true); var pageTitle = model.FriendlyName; 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; } }); 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)); }
public ActionResult EditProviderPopup(string systemName) { if (!_permissionService.Authorize(StandardPermissionProvider.ManagePlugins)) { return(AccessDeniedView()); } var provider = _providerManager.GetProvider(systemName); if (provider == null) { return(HttpNotFound()); } var model = _pluginMediator.ToProviderModel(provider, true); var pageTitle = model.FriendlyName; 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; } }); ViewBag.Title = pageTitle; return(View(model)); }
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)); }
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)); }
protected CheckoutPaymentMethodModel PreparePaymentMethodModel(IList <OrganizedShoppingCartItem> cart) { var model = new CheckoutPaymentMethodModel(); // was shipping skipped var shippingOptions = _shippingService.GetShippingOptions(cart, _workContext.CurrentCustomer.ShippingAddress, "", _storeContext.CurrentStore.Id).ShippingOptions; if (!cart.RequiresShipping() || (shippingOptions.Count <= 1 && _shippingSettings.SkipShippingIfSingleOption)) { model.SkippedSelectShipping = true; } var paymentTypes = new PaymentMethodType[] { PaymentMethodType.Standard, PaymentMethodType.Redirection, PaymentMethodType.StandardAndRedirection }; var boundPaymentMethods = _paymentService .LoadActivePaymentMethods(_workContext.CurrentCustomer, cart, _storeContext.CurrentStore.Id, paymentTypes) .ToList(); var allPaymentMethods = _paymentService.GetAllPaymentMethods(); foreach (var pm in boundPaymentMethods) { if (cart.IsRecurring() && pm.Value.RecurringPaymentType == RecurringPaymentType.NotSupported) { continue; } var paymentMethod = allPaymentMethods.FirstOrDefault(x => x.PaymentMethodSystemName.IsCaseInsensitiveEqual(pm.Metadata.SystemName)); var pmModel = new CheckoutPaymentMethodModel.PaymentMethodModel { Name = _pluginMediator.GetLocalizedFriendlyName(pm.Metadata), Description = _pluginMediator.GetLocalizedDescription(pm.Metadata), PaymentMethodSystemName = pm.Metadata.SystemName, PaymentInfoRoute = pm.Value.GetPaymentInfoRoute(), RequiresInteraction = pm.Value.RequiresInteraction }; if (paymentMethod != null) { pmModel.FullDescription = paymentMethod.GetLocalized(x => x.FullDescription, _workContext.WorkingLanguage.Id); } pmModel.BrandUrl = _pluginMediator.GetBrandImageUrl(pm.Metadata); // payment method additional fee decimal paymentMethodAdditionalFee = _paymentService.GetAdditionalHandlingFee(cart, pm.Metadata.SystemName); decimal rateBase = _taxService.GetPaymentMethodAdditionalFee(paymentMethodAdditionalFee, _workContext.CurrentCustomer); decimal rate = _currencyService.ConvertFromPrimaryStoreCurrency(rateBase, _workContext.WorkingCurrency); if (rate != decimal.Zero) { pmModel.Fee = _priceFormatter.FormatPaymentMethodAdditionalFee(rate, true); } model.PaymentMethods.Add(pmModel); } // find a selected (previously) payment method var selectedPaymentMethodSystemName = _workContext.CurrentCustomer.GetAttribute <string>( SystemCustomerAttributeNames.SelectedPaymentMethod, _genericAttributeService, _storeContext.CurrentStore.Id); bool selected = false; if (selectedPaymentMethodSystemName.HasValue()) { var paymentMethodToSelect = model.PaymentMethods.Find(pm => pm.PaymentMethodSystemName.IsCaseInsensitiveEqual(selectedPaymentMethodSystemName)); if (paymentMethodToSelect != null) { paymentMethodToSelect.Selected = true; selected = true; } } // if no option has been selected, let's do it for the first one if (!selected) { var paymentMethodToSelect = model.PaymentMethods.FirstOrDefault(); if (paymentMethodToSelect != null) { paymentMethodToSelect.Selected = true; } } return(model); }
protected CheckoutPaymentMethodModel PreparePaymentMethodModel(IList<OrganizedShoppingCartItem> cart) { var model = new CheckoutPaymentMethodModel(); //reward points if (_rewardPointsSettings.Enabled && !cart.IsRecurring()) { int rewardPointsBalance = _workContext.CurrentCustomer.GetRewardPointsBalance(); decimal rewardPointsAmountBase = _orderTotalCalculationService.ConvertRewardPointsToAmount(rewardPointsBalance); decimal rewardPointsAmount = _currencyService.ConvertFromPrimaryStoreCurrency(rewardPointsAmountBase, _workContext.WorkingCurrency); if (rewardPointsAmount > decimal.Zero) { model.DisplayRewardPoints = true; model.RewardPointsAmount = _priceFormatter.FormatPrice(rewardPointsAmount, true, false); model.RewardPointsBalance = rewardPointsBalance; } } var boundPaymentMethods = _paymentService .LoadActivePaymentMethods(_workContext.CurrentCustomer.Id, _storeContext.CurrentStore.Id) .Where(pm => pm.Value.PaymentMethodType == PaymentMethodType.Standard || pm.Value.PaymentMethodType == PaymentMethodType.Redirection || pm.Value.PaymentMethodType == PaymentMethodType.StandardAndRedirection) .ToList(); foreach (var pm in boundPaymentMethods) { if (cart.IsRecurring() && pm.Value.RecurringPaymentType == RecurringPaymentType.NotSupported) continue; var pmModel = new CheckoutPaymentMethodModel.PaymentMethodModel() { Name = _pluginMediator.GetLocalizedFriendlyName(pm.Metadata), Description = _pluginMediator.GetLocalizedDescription(pm.Metadata), PaymentMethodSystemName = pm.Metadata.SystemName, PaymentInfoRoute = pm.Value.GetPaymentInfoRoute(), RequiresInteraction = pm.Value.RequiresInteraction }; pmModel.BrandUrl = _pluginMediator.GetBrandImageUrl(pm.Metadata); // payment method additional fee decimal paymentMethodAdditionalFee = _paymentService.GetAdditionalHandlingFee(cart, pm.Metadata.SystemName); decimal rateBase = _taxService.GetPaymentMethodAdditionalFee(paymentMethodAdditionalFee, _workContext.CurrentCustomer); decimal rate = _currencyService.ConvertFromPrimaryStoreCurrency(rateBase, _workContext.WorkingCurrency); if (rate != decimal.Zero) pmModel.Fee = _priceFormatter.FormatPaymentMethodAdditionalFee(rate, true); model.PaymentMethods.Add(pmModel); } // find a selected (previously) payment method var selectedPaymentMethodSystemName = _workContext.CurrentCustomer.GetAttribute<string>( SystemCustomerAttributeNames.SelectedPaymentMethod, _genericAttributeService, _storeContext.CurrentStore.Id); bool selected = false; if (selectedPaymentMethodSystemName.HasValue()) { var paymentMethodToSelect = model.PaymentMethods.Find(pm => pm.PaymentMethodSystemName.IsCaseInsensitiveEqual(selectedPaymentMethodSystemName)); if (paymentMethodToSelect != null) { paymentMethodToSelect.Selected = true; selected = true; } } // if no option has been selected, let's do it for the first one if (!selected) { var paymentMethodToSelect = model.PaymentMethods.FirstOrDefault(); if (paymentMethodToSelect != null) paymentMethodToSelect.Selected = true; } return model; }