Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }