Exemplo n.º 1
0
        public virtual ShippingMethod ToShippingMethod(cartDto.ShippingRate shippingRate, Currency currency, IEnumerable <Currency> availCurrencies)
        {
            var rateCurrency        = availCurrencies.FirstOrDefault(x => x.Equals(shippingRate.Currency)) ?? new Currency(new Language(currency.CultureName), shippingRate.Currency);
            var ratePrice           = new Money(shippingRate.Rate ?? 0, rateCurrency);
            var ratePriceWithTax    = new Money(shippingRate.RateWithTax ?? 0, rateCurrency);
            var rateDiscount        = new Money(shippingRate.DiscountAmount ?? 0, rateCurrency);
            var rateDiscountWithTax = new Money(shippingRate.DiscountAmountWithTax ?? 0, rateCurrency);

            if (rateCurrency != currency)
            {
                ratePrice           = ratePrice.ConvertTo(currency);
                ratePriceWithTax    = ratePriceWithTax.ConvertTo(currency);
                rateDiscount        = rateDiscount.ConvertTo(currency);
                rateDiscountWithTax = rateDiscountWithTax.ConvertTo(currency);
            }

            var result = ServiceLocator.Current.GetInstance <CartFactory>().CreateShippingMethod(currency);

            result.InjectFrom <NullableAndEnumValueInjecter>(shippingRate);

            result.Price          = ratePrice;
            result.DiscountAmount = rateDiscount;

            if (shippingRate.ShippingMethod != null)
            {
                result.InjectFrom <NullableAndEnumValueInjecter>(shippingRate.ShippingMethod);
                result.ShipmentMethodCode = shippingRate.ShippingMethod.Code;
                if (shippingRate.ShippingMethod.Settings != null)
                {
                    result.Settings = shippingRate.ShippingMethod.Settings.Select(x => x.JsonConvert <platformDto.Setting>().ToSettingEntry()).ToList();
                }
            }
            return(result);
        }
Exemplo n.º 2
0
        public virtual ShippingMethod ToShippingMethod(cartDto.ShippingRate shippingRate, Currency currency, IEnumerable <Currency> availCurrencies)
        {
            var rateCurrency = availCurrencies.FirstOrDefault(x => x.Equals(shippingRate.Currency)) ?? new Currency(new Language(currency.CultureName), shippingRate.Currency);
            var ratePrice    = new Money(shippingRate.Rate ?? 0, rateCurrency);
            var rateDiscount = new Money(shippingRate.DiscountAmount ?? 0, rateCurrency);

            if (rateCurrency != currency)
            {
                ratePrice    = ratePrice.ConvertTo(currency);
                rateDiscount = rateDiscount.ConvertTo(currency);
            }

            var result = new ShippingMethod(currency);

            result.InjectFrom <NullableAndEnumValueInjecter>(shippingRate);

            result.Price          = ratePrice;
            result.DiscountAmount = rateDiscount;

            if (shippingRate.ShippingMethod != null)
            {
                result.InjectFrom <NullableAndEnumValueInjecter>(shippingRate.ShippingMethod);
                result.ShipmentMethodCode = shippingRate.ShippingMethod.Code;
                if (shippingRate.ShippingMethod.Settings != null)
                {
                    result.Settings = shippingRate.ShippingMethod.Settings.Where(x => !x.ValueType.EqualsInvariant("SecureString"))
                                      .Select(x => x.JsonConvert <platformDto.Setting>().ToSettingEntry()).ToList();
                }
            }

            return(result);
        }
Exemplo n.º 3
0
        public static ShippingMethod ToShippingMethod(this cartDto.ShippingRate shippingRate, Currency currency, IEnumerable <Currency> availCurrencies)
        {
            var rateCurrency = availCurrencies.FirstOrDefault(x => x.Equals(shippingRate.Currency)) ?? new Currency(new Language(currency.CultureName), shippingRate.Currency);
            var ratePrice    = new Money(shippingRate.Rate ?? 0, rateCurrency);
            var rateDiscount = new Money(shippingRate.DiscountAmount ?? 0, rateCurrency);

            if (rateCurrency != currency)
            {
                ratePrice    = ratePrice.ConvertTo(currency);
                rateDiscount = rateDiscount.ConvertTo(currency);
            }

            var result = new ShippingMethod(currency);

            result.OptionDescription = shippingRate.OptionDescription;
            result.OptionName        = shippingRate.OptionName;

            result.Price          = ratePrice;
            result.DiscountAmount = rateDiscount;

            if (shippingRate.ShippingMethod != null)
            {
                result.LogoUrl  = shippingRate.ShippingMethod.LogoUrl;
                result.Name     = shippingRate.ShippingMethod.Name;
                result.Priority = shippingRate.ShippingMethod.Priority ?? 0;
                result.TaxType  = shippingRate.ShippingMethod.TaxType;

                result.ShipmentMethodCode = shippingRate.ShippingMethod.Code;
                if (shippingRate.ShippingMethod.Settings != null)
                {
                    result.Settings = shippingRate.ShippingMethod.Settings.Where(x => !x.ValueType.EqualsInvariant("SecureString"))
                                      .Select(x => x.JsonConvert <platformDto.Setting>().ToSettingEntry()).ToList();
                }
            }

            return(result);
        }
Exemplo n.º 4
0
 public static ShippingMethod ToShippingMethod(this cartDto.ShippingRate shippingRate, Currency currency, IEnumerable <Currency> availCurrencies)
 {
     return(CartConverterInstance.ToShippingMethod(shippingRate, currency, availCurrencies));
 }