예제 #1
0
        private async Task <SearchOrdersResponse> SearchOrdersAsync(SearchOrdersRequest requestBody, CancellationToken token, Mark mark)
        {
            if (token.IsCancellationRequested)
            {
                var exceptionDetails = CreateMethodCallInfo(SquareEndPoint.OrdersSearchUrl, mark, additionalInfo: this.AdditionalLogInfo());
                var squareException  = new SquareException(string.Format("{0}. Search orders request was cancelled", exceptionDetails));
                SquareLogger.LogTraceException(squareException);
                throw squareException;
            }

            var response = await base.ThrottleRequest(SquareEndPoint.SearchCatalogUrl, requestBody.ToJson(), mark, (_) =>
            {
                return(_ordersApi.SearchOrdersAsync(requestBody));
            }, token).ConfigureAwait(false);

            var errors = response.Errors;

            if (errors != null && errors.Any())
            {
                var methodCallInfo  = CreateMethodCallInfo(SquareEndPoint.OrdersSearchUrl, mark, additionalInfo: this.AdditionalLogInfo(), errors: errors.ToJson(), payload: requestBody.ToJson());
                var squareException = new SquareException(string.Format("{0}. Search orders returned errors", methodCallInfo));
                SquareLogger.LogTraceException(squareException);
                throw squareException;
            }

            return(response);
        }
예제 #2
0
        public void GetOrdersByLocation()
        {
            var body = new SearchOrdersRequest
            {
                ReturnEntries = false,
                Limit         = 10,
                LocationIds   = new List <string>
                {
                    locationId
                },
                Query = new SearchOrdersQuery
                {
                    Filter = new SearchOrdersFilter
                    {
                        DateTimeFilter = new SearchOrdersDateTimeFilter
                        {
                            UpdatedAt = new TimeRange
                            {
                                StartAt = "2010-03-03T20:00:00Z",
                                EndAt   = "2040-03-03T20:00:00Z"
                            }
                        },
                        StateFilter = new SearchOrdersStateFilter(
                            new List <string>
                        {
                            "COMPLETED",
                            "OPEN",
                            "CANCELED"
                        }
                            )
                    },
                    Sort = new SearchOrdersSort("UPDATED_AT", "DESC")
                }
            };

            var response = instance.SearchOrdersAsync(body).Result;

            Assert.IsTrue(response.Errors == null || response.Errors.Count == 0);
            Assert.AreNotEqual(0, response.Orders.Count);
        }