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); }
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); }
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); }
public static ShippingMethod ToShippingMethod(this cartDto.ShippingRate shippingRate, Currency currency, IEnumerable <Currency> availCurrencies) { return(CartConverterInstance.ToShippingMethod(shippingRate, currency, availCurrencies)); }