/// <summary>
        /// Processes the specified arguments.
        /// </summary>
        /// <param name="args">The arguments.</param>
        public override void Process(Sitecore.Commerce.Pipelines.ServicePipelineArgs args)
        {
            Assert.ArgumentNotNull(args, "args");
            Assert.ArgumentNotNull(args.Request, "args.request");
            Assert.ArgumentNotNull(args.Result, "args.result");

            RefSFArguments.TranslateEntityToOrderAddressRequest request = (RefSFArguments.TranslateEntityToOrderAddressRequest)args.Request;
            Assert.ArgumentNotNull(request.SourceParty, "request.SourceParty");
            Assert.ArgumentNotNull(request.DestinationAddress, "request.DestinationAddress");

            if (request.SourceParty is ConnectOrderModels.CommerceParty)
            {
                this.TranslateCommerceParty(request.SourceParty as ConnectOrderModels.CommerceParty, request.DestinationAddress);
            }
            else if (request.SourceParty is EmailParty)
            {
                this.TranslateEmailParty(request.SourceParty as EmailParty, request.DestinationAddress);
            }
            else
            {
                this.TranslateCustomParty(request.SourceParty, request.DestinationAddress);
            }

            TranslateEntityToOrderAddressResult result = (TranslateEntityToOrderAddressResult)args.Result;

            result.Address = request.DestinationAddress;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Processes the specified arguments.
        /// </summary>
        /// <param name="args">The arguments.</param>
        public override void Process(Sitecore.Commerce.Pipelines.ServicePipelineArgs args)
        {
            Assert.ArgumentNotNull(args, "args");
            Assert.ArgumentNotNull(args.Request, "args.request");
            Assert.ArgumentNotNull(args.Result, "args.result");

            Party        requestSourceParty;
            OrderAddress requestDestinationAddress;

            if (args.Request is TranslateEntityToOrderAddressRequest)
            {
                var refStorefrontRequest = (TranslateEntityToOrderAddressRequest)args.Request;
                Assert.ArgumentNotNull(refStorefrontRequest.SourceParty, "request.SourceParty");
                Assert.ArgumentNotNull(refStorefrontRequest.DestinationAddress, "request.DestinationAddress");

                requestSourceParty        = refStorefrontRequest.SourceParty;
                requestDestinationAddress = refStorefrontRequest.DestinationAddress;
            }
            else
            {
                var csConnectRequest = (Sitecore.Commerce.Connect.CommerceServer.Orders.Pipelines.TranslateEntityToOrderAddressRequest)args.Request;
                Assert.ArgumentNotNull(csConnectRequest.SourceParty, "request.SourceParty");
                Assert.ArgumentNotNull(csConnectRequest.DestinationAddress, "request.DestinationAddress");

                requestSourceParty        = csConnectRequest.SourceParty;
                requestDestinationAddress = csConnectRequest.DestinationAddress;
            }

            if (requestSourceParty is ConnectOrderModels.CommerceParty)
            {
                this.TranslateCommerceParty(requestSourceParty as ConnectOrderModels.CommerceParty, requestDestinationAddress);
            }
            else if (requestSourceParty is EmailParty)
            {
                this.TranslateEmailParty(requestSourceParty as EmailParty, requestDestinationAddress);
            }
            else
            {
                this.TranslateCustomParty(requestSourceParty, requestDestinationAddress);
            }

            TranslateEntityToOrderAddressResult result = (TranslateEntityToOrderAddressResult)args.Result;

            result.Address = requestDestinationAddress;
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Processes the specified arguments.
        /// </summary>
        /// <param name="args">The arguments.</param>
        public override void Process(Sitecore.Commerce.Pipelines.ServicePipelineArgs args)
        {
            Assert.ArgumentNotNull(args, "args");
            Assert.ArgumentNotNull(args.Request, "args.request");

            RemovePartiesRequest request = (RemovePartiesRequest)args.Request;
            RemovePartiesResult  result  = (RemovePartiesResult)args.Result;

            var cartContext = CartPipelineContext.Get(request.RequestContext);

            Assert.IsNotNull(cartContext, "cartContext");

            List <Party> partiesRemoved = new List <Party>();

            if (cartContext.Basket != null)
            {
                foreach (Party party in request.Parties)
                {
                    if (party != null)
                    {
                        Assert.ArgumentNotNullOrEmpty(party.ExternalId, "party.ExternalId");

                        OrderAddress orderAddress = cartContext.Basket.Addresses[party.ExternalId];
                        if (orderAddress != null)
                        {
                            cartContext.Basket.Addresses.Remove(orderAddress);

                            partiesRemoved.Add(party);
                        }
                    }
                }
            }

            result.Parties = partiesRemoved;

            // Needed by the RunSaveCart CommerceConnect pipeline.
            var translateCartRequest = new TranslateOrderGroupToEntityRequest(cartContext.UserId, cartContext.ShopName, cartContext.Basket);
            var translateCartResult  = PipelineUtility.RunCommerceConnectPipeline <TranslateOrderGroupToEntityRequest, TranslateOrderGroupToEntityResult>(PipelineNames.TranslateOrderGroupToEntity, translateCartRequest);

            result.Cart = translateCartResult.Cart;
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Processes the specified arguments.
        /// </summary>
        /// <param name="args">The arguments.</param>
        public override void Process(Sitecore.Commerce.Pipelines.ServicePipelineArgs args)
        {
            Assert.ArgumentNotNull(args, "args");
            Assert.ArgumentNotNull(args.Request, "args.request");

            AddPartiesRequest request = (AddPartiesRequest)args.Request;
            AddPartiesResult  result  = (AddPartiesResult)args.Result;

            var cartContext = CartPipelineContext.Get(request.RequestContext);

            Assert.IsNotNull(cartContext, "cartContext");

            List <Party> partiesAdded = new List <Party>();

            if (cartContext.Basket != null)
            {
                foreach (Party party in request.Parties)
                {
                    Party newParty;

                    if (party == null)
                    {
                        continue;
                    }

                    newParty = this.ProcessParty(party, cartContext);

                    partiesAdded.Add(newParty);
                }
            }

            result.Parties = partiesAdded;

            // Needed by the RunSaveCart CommerceConnect pipeline.
            var translateCartRequest = new TranslateOrderGroupToEntityRequest(cartContext.UserId, cartContext.ShopName, cartContext.Basket);
            var translateCartResult  = PipelineUtility.RunCommerceConnectPipeline <TranslateOrderGroupToEntityRequest, TranslateOrderGroupToEntityResult>(PipelineNames.TranslateOrderGroupToEntity, translateCartRequest);

            result.Cart = translateCartResult.Cart;
        }
        /// <summary>
        /// Processes the specified arguments.
        /// </summary>
        /// <param name="args">The arguments.</param>
        public override void Process(Sitecore.Commerce.Pipelines.ServicePipelineArgs args)
        {
            Assert.ArgumentNotNull(args, "args");
            Assert.ArgumentNotNull(args.Request, "args.request");
            Assert.ArgumentNotNull(args.Result, "args.result");

            TranslateOrderAddressToEntityRequest request = (TranslateOrderAddressToEntityRequest)args.Request;

            Assert.ArgumentNotNull(request.SourceAddress, "request.SourceAddress");
            Assert.ArgumentNotNull(request.DestinationParty, "request.DestinationParty");

            if (request.DestinationParty is ConnectOrderModels.CommerceParty)
            {
                this.TranslateToCommerceParty(request.SourceAddress, request.DestinationParty as ConnectOrderModels.CommerceParty);
            }
            else if (request.DestinationParty is EmailParty)
            {
                this.TranslateToEmailParty(request.SourceAddress, request.DestinationParty as EmailParty);
            }
            else
            {
                this.TranslateToCustomParty(request.SourceAddress, request.DestinationParty);
            }
        }