Beispiel #1
0
        public virtual void InitializeLineItemShippingOptions(
            List <LineShippingOption> lineShippingOptions)
        {
            if (lineShippingOptions == null || !lineShippingOptions.Any <LineShippingOption>())
            {
                return;
            }
            List <LineShippingOptionJsonResult> source = new List <LineShippingOptionJsonResult>();

            foreach (LineShippingOption lineShippingOption in lineShippingOptions)
            {
                LineShippingOptionJsonResult model = this.ModelProvider.GetModel <LineShippingOptionJsonResult>();
                model.Initialize(lineShippingOption);
                source.Add(model);
            }
            this.LineShippingOptions = (IEnumerable <LineShippingOptionJsonResult>)source;
            foreach (CartLineJsonResult line1 in this.Cart.Lines)
            {
                CartLineJsonResult           line             = line1;
                LineShippingOptionJsonResult optionJsonResult = source.FirstOrDefault <LineShippingOptionJsonResult>((Func <LineShippingOptionJsonResult, bool>)(l => l.LineId.Equals(line.ExternalCartLineId, StringComparison.OrdinalIgnoreCase)));
                if (optionJsonResult != null)
                {
                    line.SetShippingOptions(optionJsonResult.ShippingOptions);
                }
            }
        }
Beispiel #2
0
 protected virtual void CheckIfEditing(
     IVisitorContext visitorContext,
     CustomBaseCheckoutDataJsonResult result)
 {
     if ((result.Cart == null || result.Cart.Shipments == null ? 0 : (result.Cart.Shipments.Count > 0 ? 1 : 0)) == 0)
     {
         return;
     }
     foreach (ShippingInfoJsonResult shipment1 in result.Cart.Shipments)
     {
         ShippingInfoJsonResult shipment = shipment1;
         if (shipment.LineIDs != null && shipment.LineIDs.Count > 0)
         {
             CartLineJsonResult cartLineJsonResult = result.Cart.Lines.Find((l => l.ExternalCartLineId.Equals(shipment.LineIDs[0], StringComparison.OrdinalIgnoreCase)));
             if (cartLineJsonResult != null && cartLineJsonResult.ShippingOptions != null && cartLineJsonResult.ShippingOptions.Count <ShippingOptionJsonResult>() > 0)
             {
                 ShippingOptionJsonResult optionJsonResult = cartLineJsonResult.ShippingOptions.ElementAt <ShippingOptionJsonResult>(0);
                 if (optionJsonResult != null)
                 {
                     shipment.EditModeShippingOptionType = optionJsonResult.ShippingOptionType;
                     if (optionJsonResult.ShippingOptionType == ShippingOptionType.ShipToAddress)
                     {
                         AddressJsonResult addressJsonResult = result.Cart.Parties.Find((Predicate <AddressJsonResult>)(p => p.ExternalId.Equals(shipment.PartyID, StringComparison.OrdinalIgnoreCase)));
                         if (addressJsonResult != null)
                         {
                             GetShippingMethodsInputModel inputModel = new GetShippingMethodsInputModel()
                             {
                                 ShippingPreferenceType = ShippingOptionType.ShipToAddress.Value.ToString((IFormatProvider)CultureInfo.InvariantCulture),
                                 ShippingAddress        = new PartyInputModel()
                             };
                             inputModel.ShippingAddress.ExternalId    = addressJsonResult.ExternalId;
                             inputModel.ShippingAddress.Address1      = addressJsonResult.Address1;
                             inputModel.ShippingAddress.City          = addressJsonResult.City;
                             inputModel.ShippingAddress.State         = addressJsonResult.State;
                             inputModel.ShippingAddress.ZipPostalCode = addressJsonResult.ZipPostalCode;
                             inputModel.ShippingAddress.Country       = addressJsonResult.Country;
                             inputModel.ShippingAddress.IsPrimary     = addressJsonResult.IsPrimary;
                             inputModel.Lines = new List <CartLineInputModel>();
                             ShippingMethodsJsonResult shippingMethods = this.GetShippingMethods(visitorContext, inputModel);
                             if (shippingMethods != null)
                             {
                                 shipment.ShipmentEditModel = this.ModelProvider.GetModel <ShipmentEditModeDataJsonResult>();
                                 shipment.ShipmentEditModel.ShippingMethods = shippingMethods.ShippingMethods;
                             }
                         }
                     }
                 }
             }
         }
     }
 }