public static CartModule.Client.Model.LineItem ToServiceModel(this LineItem webModel) { var serviceModel = new CartModule.Client.Model.LineItem(); serviceModel.InjectFrom <NullableAndEnumValueInjecter>(webModel); serviceModel.Currency = webModel.Currency.Code; serviceModel.Discounts = webModel.Discounts.Select(d => d.ToServiceModel()).ToList(); serviceModel.DiscountTotal = (double)webModel.DiscountTotal.Amount; serviceModel.ExtendedPrice = (double)webModel.ExtendedPrice.Amount; serviceModel.ListPrice = (double)webModel.ListPrice.Amount; serviceModel.PlacedPrice = (double)webModel.PlacedPrice.Amount; serviceModel.SalePrice = (double)webModel.SalePrice.Amount; serviceModel.TaxDetails = webModel.TaxDetails.Select(td => td.ToCartApiModel()).ToList(); serviceModel.DynamicProperties = webModel.DynamicProperties.Select(dp => dp.ToCartApiModel()).ToList(); serviceModel.TaxTotal = (double)webModel.TaxTotal.Amount; serviceModel.VolumetricWeight = (double)(webModel.VolumetricWeight ?? 0); serviceModel.Weight = (double?)webModel.Weight; serviceModel.Width = (double?)webModel.Width; serviceModel.Height = (double?)webModel.Height; serviceModel.Length = (double?)webModel.Length; serviceModel.ValidationType = webModel.ValidationType.ToString(); return(serviceModel); }
public static LineItem ToWebModel(this CartModule.Client.Model.LineItem serviceModel, Currency currency, Language language) { var webModel = new LineItem(currency, language); webModel.InjectFrom <NullableAndEnumValueInjecter>(serviceModel); if (serviceModel.TaxDetails != null) { webModel.TaxDetails = serviceModel.TaxDetails.Select(td => td.ToWebModel(currency)).ToList(); } if (serviceModel.DynamicProperties != null) { webModel.DynamicProperties = serviceModel.DynamicProperties.Select(dp => dp.ToWebModel()).ToList(); } if (!serviceModel.Discounts.IsNullOrEmpty()) { webModel.Discounts.AddRange(serviceModel.Discounts.Select(x => x.ToWebModel(new[] { currency }, language))); } webModel.IsGift = serviceModel.IsGift == true; webModel.IsReccuring = serviceModel.IsReccuring == true; webModel.ListPrice = new Money(serviceModel.ListPrice ?? 0, currency); webModel.RequiredShipping = serviceModel.RequiredShipping == true; webModel.SalePrice = new Money(serviceModel.SalePrice ?? 0, currency); webModel.TaxIncluded = serviceModel.TaxIncluded == true; webModel.TaxTotal = new Money(serviceModel.TaxTotal ?? 0, currency); webModel.Weight = (decimal?)serviceModel.Weight; webModel.Width = (decimal?)serviceModel.Width; webModel.Height = (decimal?)serviceModel.Height; webModel.Length = (decimal?)serviceModel.Length; webModel.ValidationType = EnumUtility.SafeParse(serviceModel.ValidationType, ValidationType.PriceAndQuantity); return(webModel); }