コード例 #1
0
        public PipelineExecutionResult Execute(IPipelineArgs <RemoveShipmentRequest, RemoveShipmentResult> subject)
        {
            if (subject.Request.Properties.ContainsKey("FromUCommerce"))
            {
                if (!(bool)subject.Request.Properties["FromUCommerce"])
                {
                    return(PipelineExecutionResult.Success);
                }
            }

            var cart = MappingLibrary.MapPurchaseOrderToCart(subject.Request.PurchaseOrder);

            var cartService  = new CartServiceProvider();
            var shippingList = new List <ShippingInfo>
            {
                new ShippingInfo()
                {
                    ExternalId       = subject.Request.Shipment.ShipmentId.ToString(),
                    PartyID          = subject.Request.Shipment.ShipmentAddress.OrderAddressId.ToString(),
                    ShippingMethodID = subject.Request.Shipment.ShippingMethod.ShippingMethodId.ToString()
                }
            };
            var request = new RemoveShippingInfoRequest(cart, shippingList);

            request.Properties["FromUCommerce"] = true;

            var result = cartService.RemoveShippingInfo(request);

            return(PipelineExecutionResult.Success);
        }
コード例 #2
0
        public PipelineExecutionResult Execute(IPipelineArgs <CreateBasketRequest, CreateBasketResponse> subject)
        {
            if (subject.Request.Properties.ContainsKey("FromUCommerce"))
            {
                if (!(bool)subject.Request.Properties["FromUCommerce"])
                {
                    return(PipelineExecutionResult.Success);
                }
            }

            if (subject.Response.PurchaseOrder == null)
            {
                return(PipelineExecutionResult.Success);
            }

            var    contactFactory = new ContactFactory();
            string userId         = contactFactory.GetContact();

            subject.Response.PurchaseOrder["CommerceConnectUserIdentifier"] = userId;

            var cartServiceProvider = new CartServiceProvider();
            var createCartRequest   = new CreateOrResumeCartRequest(Context.GetSiteName(), userId);

            //should it do anything???
            cartServiceProvider.CreateOrResumeCart(createCartRequest);

            return(PipelineExecutionResult.Success);
        }
コード例 #3
0
        public PipelineExecutionResult Execute(IPipelineArgs <AddToBasketRequest, AddToBasketResponse> subject)
        {
            if (subject.Request.Properties.ContainsKey("FromUCommerce"))
            {
                if (!(bool)subject.Request.Properties["FromUCommerce"])
                {
                    return(PipelineExecutionResult.Success);
                }
            }

            //var cart = MappingLibrary.MapPurchaseOrderToCart(subject.Request.PurchaseOrder);

            var    contactFactory = new ContactFactory();
            string userId         = contactFactory.GetContact();

            var cartServiceProvider = new CartServiceProvider();
            var createCartRequest   = new CreateOrResumeCartRequest(Context.GetSiteName(), userId);

            //should it do anything???
            var cart = cartServiceProvider.CreateOrResumeCart(createCartRequest).Cart;

            var cartLine = MappingLibrary.MapOrderLineToCartLine(subject.Response.OrderLine);

            var request = new AddCartLinesRequest(cart, new Collection <CartLine> {
                cartLine
            });

            request.Properties["FromUCommerce"] = true;

            var serviceProvider = new CartServiceProvider();

            serviceProvider.AddCartLines(request);

            return(PipelineExecutionResult.Success);
        }
        public PipelineExecutionResult Execute(IPipelineArgs <AddAddressRequest, AddAddressResult> subject)
        {
            if (subject.Request.Properties.ContainsKey("FromUCommerce"))
            {
                if (!(bool)subject.Request.Properties["FromUCommerce"])
                {
                    return(PipelineExecutionResult.Success);
                }
            }

            var cartServiceProvider = new CartServiceProvider();
            var cart = _mappingLibraryInternal.MapPurchaseOrderToCart(subject.Request.PurchaseOrder);

            var party     = _orderAddressMapper.Map(subject.Response.OrderAddress);
            var partyList = new List <Party> {
                party
            };

            if (subject.Request.ExistingOrderAddress == null)
            {
                var addPartiesRequest = new AddPartiesRequest(cart, partyList);
                addPartiesRequest.Properties["FromUCommerce"] = true;
                var addPartiesResult = cartServiceProvider.AddParties(addPartiesRequest);

                return(PipelineExecutionResult.Success);
            }

            var updatePartiesRequest = new UpdatePartiesRequest(cart, partyList);

            updatePartiesRequest.Properties["FromUCommerce"] = true;
            var updatePartiesResult = cartServiceProvider.UpdateParties(updatePartiesRequest);

            return(PipelineExecutionResult.Success);
        }
コード例 #5
0
        public PipelineExecutionResult Execute(IPipelineArgs <CreateCustomerRequest, CreateCustomerResponse> subject)
        {
            if (subject.Response.Customer == null)
            {
                throw new ArgumentException();
            }

            var commerceCustomer = _customerToCustomer.Map(subject.Response.Customer);

            var customerService = new CustomerServiceProvider();

            var createCustomerRequest = new global::Sitecore.Commerce.Services.Customers.CreateCustomerRequest(commerceCustomer);

            createCustomerRequest.Properties["FromUCommerce"] = true;

            customerService.CreateCustomer(createCustomerRequest);

            return(PipelineExecutionResult.Success);
        }
        public PipelineExecutionResult Execute(IPipelineArgs <AddAddressRequest, AddAddressResult> subject)
        {
            var trackerType = typeof(Tracker);

            if (trackerType == null)
            {
                return(PipelineExecutionResult.Success);
            }


            //Enabled and Current are properties only present in SC82 and below.
            //This should never be called in Sitecore 9.
            var hasEnabledProperty = trackerType.GetProperties(BindingFlags.Static).Any(x => x.Name == "Enabled");
            var hasCurrentProperty = trackerType.GetProperties(BindingFlags.Static).Any(x => x.Name == "Current");

            if (hasCurrentProperty && hasEnabledProperty)
            {
                new UpdateTrackerInformation().Execute(subject.Request.FirstName, subject.Request.LastName,
                                                       subject.Request.EmailAddress, subject.Request.PhoneNumber, subject.Request.AddressName);
            }

            return(PipelineExecutionResult.Success);
        }
        public PipelineExecutionResult Execute(IPipelineArgs <UpdateLineItemRequest, UpdateLineItemResponse> subject)
        {
            if (subject.Request.Properties.ContainsKey("FromUCommerce"))
            {
                if (!(bool)subject.Request.Properties["FromUCommerce"])
                {
                    return(PipelineExecutionResult.Success);
                }
            }

            if (subject.Request.Quantity == 0)
            {
                var cart                = MappingLibrary.MapPurchaseOrderToCart(subject.Request.OrderLine.PurchaseOrder);
                var cartLine            = MappingLibrary.MapOrderLineToCartLine(subject.Request.OrderLine);
                var cartServiceProvider = new CartServiceProvider();

                var request = new RemoveCartLinesRequest(cart, new Collection <CartLine> {
                    cartLine
                });
                request.Properties["FromUCommerce"] = true;
                cartServiceProvider.RemoveCartLines(request);
            }
            return(PipelineExecutionResult.Success);
        }
コード例 #8
0
        public PipelineExecutionResult Execute(IPipelineArgs <CreateMemberRequest, CreateMemberResponse> subject)
        {
            if (subject.Request.Properties.ContainsKey("FromUCommerce"))
            {
                if (!(bool)subject.Request.Properties["FromUCommerce"])
                {
                    return(PipelineExecutionResult.Success);
                }
            }

            var customerService = new CustomerServiceProvider();

            var createUserRequest = new CreateUserRequest(
                subject.Response.Member.LoginName,
                subject.Response.Member.Password,
                subject.Response.Member.Email,
                Context.GetSiteName());

            createUserRequest.Properties["FromUCommerce"] = true;

            customerService.CreateUser(createUserRequest);

            return(PipelineExecutionResult.Success);
        }
コード例 #9
0
        public static string GetPipelineName(PipelineArgs p_Args)
        {
            IPipelineArgs coveoPipelineArgs = p_Args as IPipelineArgs;

            return(coveoPipelineArgs?.PipelineName);
        }
コード例 #10
0
        public PipelineExecutionResult Execute(IPipelineArgs <SaveUserGroupRolesRequest, SaveUserGroupRolesResponse> subject)
        {
            InformDataProvider();

            return(PipelineExecutionResult.Success);
        }
コード例 #11
0
        public PipelineExecutionResult Execute(IPipelineArgs <SaveUserGroupRolesRequest, SaveUserGroupRolesResponse> subject)
        {
            CacheManager.ClearAccessResultCache();

            return(PipelineExecutionResult.Success);
        }
コード例 #12
0
ファイル: VPipelineManager.cs プロジェクト: MGramolini/vodca
        /// <summary>
        /// Runs the specified unique name.
        /// </summary>
        /// <param name="uniquename">The unique name.</param>
        /// <param name="args">The args.</param>
        /// <returns>The result args</returns>
        public static IPipelineArgs Run(string uniquename, IPipelineArgs args)
        {
            VInternalPiplineMethodCollectionManager collectionmanager;
            if (!Manager.Collection.TryGetValue(uniquename, out collectionmanager))
            {
                throw new VHttpArgumentException("Pipeline not found!");
            }

            collectionmanager.Execute(args);

            return args;
        }