public static CartModule.Client.Model.Shipment ToServiceModel(this Shipment shipment) { var serviceModel = new CartModule.Client.Model.Shipment(); serviceModel.InjectFrom(shipment); serviceModel.Currency = shipment.Currency.Code; serviceModel.DiscountTotal = shipment.DiscountTotal != null ? (double?)shipment.DiscountTotal.Amount : null; serviceModel.TaxTotal = shipment.TaxTotal != null ? (double?)shipment.TaxTotal.Amount : null; serviceModel.ShippingPrice = (double)shipment.ShippingPrice.Amount; serviceModel.Total = (double)shipment.Total.Amount; if (shipment.DeliveryAddress != null) { serviceModel.DeliveryAddress = shipment.DeliveryAddress.ToCartServiceModel(); } if (shipment.Discounts != null) { serviceModel.Discounts = shipment.Discounts.Select(d => d.ToServiceModel()).ToList(); } if (shipment.Items != null) { serviceModel.Items = shipment.Items.Select(i => i.ToServiceModel()).ToList(); } if (shipment.TaxDetails != null) { serviceModel.TaxDetails = shipment.TaxDetails.Select(td => td.ToCartApiModel()).ToList(); } return(serviceModel); }
public static Shipment ToWebModel(this CartModule.Client.Model.Shipment shipment, ShoppingCart cart) { var webModel = new Shipment(cart.Currency); webModel.InjectFrom(shipment); webModel.Currency = cart.Currency; webModel.ShippingPrice = new Money(shipment.ShippingPrice ?? 0, cart.Currency); webModel.TaxTotal = new Money(shipment.TaxTotal ?? 0, cart.Currency); if (shipment.DeliveryAddress != null) { webModel.DeliveryAddress = shipment.DeliveryAddress.ToWebModel(); } if (shipment.Items != null) { webModel.Items = shipment.Items.Select(i => i.ToWebModel(cart)).ToList(); } if (shipment.TaxDetails != null) { webModel.TaxDetails = shipment.TaxDetails.Select(td => td.ToWebModel(cart.Currency)).ToList(); } if (!shipment.Discounts.IsNullOrEmpty()) { webModel.Discounts.AddRange(shipment.Discounts.Select(x => x.ToWebModel(new[] { cart.Currency }, cart.Language))); } return(webModel); }