public static LineItem ToWebModel(this VirtoCommerceOrderModuleWebModelLineItem lineItem, IEnumerable<Currency> availCurrencies, Language language) { var webModel = new LineItem(); var currency = availCurrencies.FirstOrDefault(x => x.Equals(lineItem.Currency)) ?? new Currency(language, lineItem.Currency); webModel.InjectFrom(lineItem); webModel.Currency = currency; webModel.DiscountAmount = new Money(lineItem.DiscountAmount ?? 0, currency); if (lineItem.DynamicProperties != null) { webModel.DynamicProperties = lineItem.DynamicProperties.Select(dp => dp.ToWebModel()).ToList(); } webModel.BasePrice = new Money(lineItem.BasePrice ?? 0, currency); webModel.Price = new Money(lineItem.Price ?? 0, currency); webModel.Tax = new Money(lineItem.Tax ?? 0, currency); if (lineItem.TaxDetails != null) { webModel.TaxDetails = lineItem.TaxDetails.Select(td => td.ToWebModel(currency)).ToList(); } return webModel; }
public static LineItem ToWebModel(this VirtoCommerceOrderModuleWebModelLineItem lineItem) { var webModel = new LineItem(); var currency = new Currency(EnumUtility.SafeParse(lineItem.Currency, CurrencyCodes.USD)); webModel.InjectFrom(lineItem); webModel.Currency = currency; webModel.DiscountAmount = new Money(lineItem.DiscountAmount ?? 0, currency.Code); if (lineItem.DynamicProperties != null) { webModel.DynamicProperties = lineItem.DynamicProperties.Select(dp => dp.ToWebModel()).ToList(); } webModel.Price = new Money(lineItem.Price ?? 0, currency.Code); webModel.Tax = new Money(lineItem.Tax ?? 0, currency.Code); if (lineItem.TaxDetails != null) { webModel.TaxDetails = lineItem.TaxDetails.Select(td => td.ToWebModel()).ToList(); } return webModel; }