private bool TryResolveSubmittedOrder(CartBase cart, out ManagerResponse <SubmitVisitorOrderResult, Order> managerResponse)
        {
            var getVisitorOrdersRequest = new GetVisitorOrdersRequest(cart.CustomerId, cart.ShopName);
            GetVisitorOrdersResult getVisitorOrdersResult = this.orderServiceProvider.GetVisitorOrders(getVisitorOrdersRequest);

            if (getVisitorOrdersResult.Success)
            {
                // Getting the latest order
                OrderHeader orderHeader = getVisitorOrdersResult.OrderHeaders.OrderByDescending(x => x.OrderDate).FirstOrDefault();
                if (orderHeader != null)
                {
                    var getVisitorOrderRequest = new GetVisitorOrderRequest(orderHeader.OrderID, orderHeader.CustomerId, orderHeader.ShopName);

                    GetVisitorOrderResult getVisitorOrderResult =
                        this.orderServiceProvider.GetVisitorOrder(getVisitorOrderRequest);

                    if (getVisitorOrderResult.Order != null)
                    {
                        managerResponse = new ManagerResponse <SubmitVisitorOrderResult, Order>(
                            new SubmitVisitorOrderResult {
                            Order = getVisitorOrderResult.Order, Success = true
                        },
                            getVisitorOrderResult.Order);

                        return(true);
                    }
                }
            }

            managerResponse = null;
            return(false);
        }
コード例 #2
0
        public ManagerResponse <GetVisitorOrderResult, Order> GetOrderDetails(string orderId, string customerId, string shopName)
        {
            Assert.ArgumentNotNullOrEmpty(orderId, nameof(orderId));
            Assert.ArgumentNotNullOrEmpty(customerId, nameof(customerId));
            Assert.ArgumentNotNullOrEmpty(shopName, nameof(shopName));

            var getVisitorOrderRequest = new GetVisitorOrderRequest(orderId, customerId, shopName);
            var getVisitorOrderResult  = this.orderServiceProvider.GetVisitorOrder(getVisitorOrderRequest);

            if (!string.IsNullOrEmpty(getVisitorOrderResult.Order?.CustomerId) &&
                (getVisitorOrderResult.Order?.CustomerId == customerId))
            {
                var successServiceProviderResult = getVisitorOrderResult;
                return(new ManagerResponse <GetVisitorOrderResult, Order>(
                           successServiceProviderResult,
                           successServiceProviderResult.Order));
            }

            var errorServiceProviderResult = new GetVisitorOrderResult
            {
                Success = false
            };

            return(new ManagerResponse <GetVisitorOrderResult, Order>(errorServiceProviderResult, null));
        }
        public ActionResult GetOrder(string orderId)
        {
            var orderService = new OrderServiceProvider();

            var visitorOrderRequest = new GetVisitorOrderRequest(orderId,
                                                                 "Entity-Customer-34d758ae2d2d472d89014954d0cc4440", "CommerceEngineDefaultStorefront");
            var result = orderService.GetVisitorOrder(visitorOrderRequest);

            return(View(result));
        }
        /// <summary>
        /// Gets the order details.
        /// </summary>
        /// <param name="storefront">The storefront.</param>
        /// <param name="visitorContext">The visitor context.</param>
        /// <param name="orderId">The order identifier.</param>
        /// <returns>
        /// The manager response where the order detail returned in the Result.
        /// </returns>
        public ManagerResponse <GetVisitorOrderResult, CommerceOrder> GetOrderDetails([NotNull] CommerceStorefront storefront, [NotNull] IVisitorContext visitorContext, [NotNull] string orderId)
        {
            Assert.ArgumentNotNull(storefront, "storefront");
            Assert.ArgumentNotNull(visitorContext, "visitorContext");
            Assert.ArgumentNotNullOrEmpty(orderId, "orderId");

            var customerId = visitorContext.GetCustomerId();
            var request    = new GetVisitorOrderRequest(orderId, customerId, storefront.ShopName);
            var result     = this._orderServiceProvider.GetVisitorOrder(request);

            //Helpers.LogSystemMessages(result.SystemMessages, result);
            return(new ManagerResponse <GetVisitorOrderResult, CommerceOrder>(result, result.Order as CommerceOrder));
        }
コード例 #5
0
        public ManagerResponse <GetVisitorOrderResult, CommerceOrder> GetOrderDetails(string userId, string orderId)
        {
            Assert.ArgumentNotNullOrEmpty(userId, nameof(userId));
            Assert.ArgumentNotNullOrEmpty(orderId, nameof(orderId));

            if (StorefrontContext.Current == null)
            {
                throw new InvalidOperationException("Cannot be called without a valid storefront context.");
            }

            var request = new GetVisitorOrderRequest(orderId, userId, StorefrontContext.Current.ShopName);
            var result  = OrderServiceProvider.GetVisitorOrder(request);

            result.WriteToSitecoreLog();
            return(new ManagerResponse <GetVisitorOrderResult, CommerceOrder>(result, result.Order as CommerceOrder));
        }
コード例 #6
0
        /// <summary>
        /// Initializes a new instance of the <see cref="GetOrderTest"/> class.
        /// </summary>
        public GetOrderTest()
        {
            this.orderId    = 1;
            this.customerId = 1;
            this.request    = new GetVisitorOrderRequest(this.orderId.ToString(), this.customerId.ToString(), "NopShop");
            this.result     = new GetVisitorOrderResult();
            this.args       = new ServicePipelineArgs(this.request, this.result);

            this.client = Substitute.For <IOrdersServiceChannel>();

            var clientFactory = Substitute.For <ServiceClientFactory>();

            clientFactory.CreateClient <IOrdersServiceChannel>(Arg.Any <string>(), Arg.Any <string>()).Returns(this.client);

            this.processor = new GetOrder {
                ClientFactory = clientFactory
            };
        }
コード例 #7
0
        /// <summary>
        /// Gets the order details.
        /// </summary>
        /// <param name="storefront">The storefront.</param>
        /// <param name="visitorContext">The visitor context.</param>
        /// <param name="orderId">The order identifier.</param>
        /// <returns>
        /// The manager response where the order detail returned in the Result.
        /// </returns>
        public ManagerResponse<GetVisitorOrderResult, CommerceOrder> GetOrderDetails([NotNull] CommerceStorefront storefront, [NotNull] VisitorContext visitorContext, [NotNull] string orderId)
        {
            Assert.ArgumentNotNull(storefront, "storefront");
            Assert.ArgumentNotNull(visitorContext, "visitorContext");
            Assert.ArgumentNotNullOrEmpty(orderId, "orderId");

            var customerId = visitorContext.GetCustomerId();
            var request = new GetVisitorOrderRequest(orderId, customerId, storefront.ShopName);
            var result = this.OrderServiceProvider.GetVisitorOrder(request);

            Helpers.LogSystemMessages(result.SystemMessages, result);
            return new ManagerResponse<GetVisitorOrderResult, CommerceOrder>(result, result.Order as CommerceOrder);
        }