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);
        }
Esempio n. 2
0
        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;
            }
        }
Esempio n. 3
0
        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);
        }