public static PaymentProvider GetProvider(PaymentProviderName providerName, DataModel.Store store)
        {
            switch (providerName)
            {
            case PaymentProviderName.PayLater:
                return(new PayLaterPaymentProvider(store.GetPaymentProviderConfig(providerName)));

            case PaymentProviderName.CardCaptureOnly:
                return(new CardCaptureOnlyPaymentProvider(store.GetPaymentProviderConfig(providerName)));

            case PaymentProviderName.PayPalStandard:
                return(new PayPalStandardProvider(store.GetPaymentProviderConfig(providerName)));

            case PaymentProviderName.PayPalDirectPayment:
                return(new PayPalDirectPaymentProvider(store.GetPaymentProviderConfig(providerName)));

            case PaymentProviderName.PayPalExpressCheckout:
                return(new PayPalExpressCheckoutPaymentProvider(store.GetPaymentProviderConfig(providerName)));

            case PaymentProviderName.AuthorizeNetAim:
                return(new AuthorizeNetAimProvider(store.GetPaymentProviderConfig(providerName)));

            default:
                throw new ArgumentException("PaymentProvider Not Found: " + providerName.ToString());
            }
        }
Ejemplo n.º 2
0
        //public List<ShippingOption> GetShippingOptions()
        //{
        //    List<ShippingOption> options = new List<ShippingOption>();

        //    GetEnabledShippingProviders().ForEach(p => options.AddRange(p.GetShippingOptions()));

        //    return options;
        //}

        //public ShippingOption GetShippingOptionByListKey(string shippingOptionListKey)
        //{
        //    List<ShippingOption> options = GetShippingOptions();

        //    ShippingOption o = options.Find(x => x.ListKey == shippingOptionListKey);

        //    return o ?? new ShippingOption();
        //}

        //public List<ShippingOption> GetShippingOptions(AddressInfo origin, AddressInfo destination)
        //{
        //    List<ShippingOption> options = new List<ShippingOption>();

        //    GetEnabledShippingProviders().ForEach(p => options.AddRange(p.GetShippingOptions(origin, destination)));

        //    return options;
        //}

        //public List<ShippingOption> GetShippingOptionEstimates(AddressInfo origin, AddressInfo destination, List<vCartItemProductInfo> cartProducts)
        //{
        //    List<string> errors;
        //    return GetShippingOptionEstimates(origin, destination, cartProducts, out errors);
        //}

        //public List<ShippingOption> GetShippingOptionEstimates(AddressInfo origin, AddressInfo destination, List<vCartItemProductInfo> cartProducts, out List<string> errorMessages)
        //{
        //    errorMessages = new List<string>();

        //    List<ShippingOption> estimates = new List<ShippingOption>();

        //    var providers = GetEnabledShippingProviders();
        //    foreach(var p in providers)
        //    {
        //        estimates.AddRange(p.GetShippingOptionEstimates(origin, destination, cartProducts));
        //        if(p.ErrorMessages.Count > 0)
        //        {
        //            errorMessages.AddRange(p.ErrorMessages.ConvertAll(s => string.Format(@"ShippingProvider ""{0}"". {1}", p.ToString(), s)));
        //            //p.ErrorMessages.ForEach(s => Exceptions.LogException(new ModuleLoadException(string.Format(@"ShippingProvider: {0} {1}", p.ToString(), s))));
        //        }
        //    }

        //    errorMessages.ForEach(s => Exceptions.LogException(new ModuleLoadException(s)));

        //    estimates.Sort((left,right) => left.Cost.GetValueOrDefault(0).CompareTo(right.Cost.GetValueOrDefault(0)));

        //    return estimates;
        //}

        //public decimal GetShippingOptionCost(AddressInfo origin, AddressInfo destination, List<vCartItemProductInfo> cartProducts, string shippingOptionListKey)
        //{
        //    var option = GetShippingOptionByListKey(shippingOptionListKey);
        //    if(option == null)
        //    {
        //        throw new ApplicationException("Unable to find ShippingOption with ListKey '" + shippingOptionListKey + "'");
        //    }

        //    var shippingProvider = ShippingProviderFactory.Get(this.Id.Value, option.ProviderType);

        //    return shippingProvider.GetShippingOptionCost(origin, destination, cartProducts, option);
        //}

        public bool IsPaymentProviderEnabled(PaymentProviderName paymentProviderName)
        {
            var config = this.GetPaymentProviderConfig(paymentProviderName);

            return(config.Settings.ContainsKey("IsEnabled")
                ? WA.Parser.ToBool(config.Settings["IsEnabled"]).GetValueOrDefault(false)
                : false);
        }
Ejemplo n.º 3
0
        public ProviderConfig GetPaymentProviderConfig(PaymentProviderName paymentProviderName)
        {
            List <ProviderConfig> configs = GetPaymentProviderConfigs();
            ProviderConfig        config  = configs.Find(c => c.ProviderId == (short)paymentProviderName);

            if (config == null)
            {
                config = new ProviderConfig();
                //config.IsEnabled = true;
                config.ProviderId = (short)paymentProviderName;
            }

            return(config);
        }