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));
        }
コード例 #3
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
            };
        }