private PaymentMethod CreatePaymentMethod(string name, decimal fee, Currency currency, PriceGroup priceGroup, decimal feePercentage) { var paymentMethod = PaymentMethod.SingleOrDefault(x => x.Name == name) ?? new PaymentMethodFactory().NewWithDefaults(name); paymentMethod.Deleted = false; paymentMethod.FeePercent = feePercentage; var method = paymentMethod.PaymentMethodFees.FirstOrDefault(p => p.PriceGroup.Currency.ISOCode == currency.ISOCode); if (method == null) { method = new PaymentMethodFee() { PriceGroup = priceGroup }; paymentMethod.AddPaymentMethodFee(method); } method.Fee = fee; method.PriceGroup = priceGroup; method.Save(); paymentMethod.ClearEligibleCountries(); foreach (var country in _countries) { paymentMethod.AddEligibleCountry(country); } paymentMethod.Save(); return(paymentMethod); }
private void AssignPaymentMethodFee(IPayment payment) { PaymentMethodFee paymentMethodFee = payment.PaymentMethod.PaymentMethodFees .OrderByDescending(fee => fee.MinimumNumberInstallments) .FirstOrDefault(fee => payment.NumberOfInstallments >= fee.MinimumNumberInstallments); if (paymentMethodFee != null) { payment.FeePercentage = paymentMethodFee.Percentage; payment.FeeFixedValue = paymentMethodFee.FixedValue; } }
private PaymentMethod CreatePaymentMethod(string name, decimal fee, Currency currency, PriceGroup priceGroup, decimal feePercentage) { var paymentMethod = PaymentMethod.SingleOrDefault(x => x.Name == name) ?? new PaymentMethodFactory().NewWithDefaults(name); paymentMethod.Deleted = false; paymentMethod.FeePercent = feePercentage; var method = paymentMethod.PaymentMethodFees.FirstOrDefault(p => p.PriceGroup.Currency.ISOCode == currency.ISOCode); if (method == null) { method = new PaymentMethodFee() { PriceGroup = priceGroup }; paymentMethod.AddPaymentMethodFee(method); } method.Fee = fee; method.PriceGroup = priceGroup; method.Save(); paymentMethod.ClearEligibleCountries(); foreach (var country in _countries) { paymentMethod.AddEligibleCountry(country); } var defaultPaymentMethodService = Definition.SingleOrDefault(x => x.Name == "Default Payment Method Service"); if (defaultPaymentMethodService != null) { paymentMethod.Definition = defaultPaymentMethodService; var acceptUrl = paymentMethod.GetProperty("AcceptUrl"); if (acceptUrl != null) { acceptUrl.SetValue("/basket/confirmation"); } } paymentMethod.PaymentMethodServiceName = "Default Payment Method Service"; paymentMethod.Pipeline = "Checkout"; paymentMethod.Save(); return(paymentMethod); }