示例#1
0
        public OrderCreateReturnType CreateOrder(Order order, string accessToken)
        {
            if (order == null)
            {
                throw new ArgumentNullException(nameof(order), "Order cannot be null for this call");
            }
            if (string.IsNullOrEmpty(accessToken))
            {
                throw new ArgumentNullException(nameof(accessToken), Constants.MissingAccessTokenMessage);
            }

            var         restclient = new RestClient(Constants.BaseUrl);
            RestRequest request    = new RestRequest(string.Format(orderCreateEndPoint))
            {
                Method = Method.POST
            };

            request.AddCommonHeaders(accessToken);
            request.AddParameter(string.Empty, JsonConvert.SerializeObject(order, new DefaultJsonSerializer()), ParameterType.RequestBody);

            var tResponse             = restclient.Execute(request);
            var responseJson          = tResponse.Content;
            var responseKeys          = JsonConvert.DeserializeObject <Dictionary <string, object> >(responseJson);
            var checkReposnseForError = responseKeys.ContainsKey(Constants.ErrorCode) ? responseKeys[Constants.ErrorCode].ToString() : string.Empty;

            if (!string.IsNullOrEmpty(checkReposnseForError) && (checkReposnseForError == Constants.ErroCodeInvalid || checkReposnseForError == Constants.ValueNotSupported))
            {
                throw new InvalidOperationException(responseJson.ToString());
            }

            return(JsonConvert.DeserializeObject <OrderCreateReturnType>(tResponse.Content));
        }
示例#2
0
        /// <summary>
        /// Get Stock details
        /// </summary>
        /// <param name="customerId"></param>
        /// <param name="facilityId"></param>
        /// <param name="date"></param><remarks>Include time if same day details are required</remarks>
        /// <param name="accessToken"></param>
        /// <returns></returns>
        public StockDetailsResultType GetStockByDate(int customerId, int facilityId, DateTime date, string accessToken)
        {
            if (string.IsNullOrEmpty(accessToken))
            {
                throw new ArgumentNullException(nameof(accessToken), Constants.MissingAccessTokenMessage);
            }
            if (customerId == 0)
            {
                throw new ArgumentException(Constants.MissingCustomerIdMessage);
            }
            if (facilityId == 0)
            {
                throw new ArgumentException(Constants.MissingFacilityIdMessage);
            }

            var         restclient = new RestClient(Constants.BaseUrl);
            RestRequest request    = new RestRequest(string.Format(stockDetailsEndPoint, customerId, facilityId) + "&rql=ReceivedDate=le=" + date)
            {
                Method = Method.GET
            };

            request.AddCommonHeaders(accessToken);

            var tResponse = restclient.Execute(request);

            return(JsonConvert.DeserializeObject <StockDetailsResultType>(tResponse.Content));
        }
示例#3
0
        public void CancelOrder(OrderCancel order, string accessToken)
        {
            if (string.IsNullOrEmpty(accessToken))
            {
                throw new ArgumentNullException(nameof(accessToken), Constants.MissingAccessTokenMessage);
            }
            if (order == null)
            {
                throw new ArgumentException(nameof(order), "No order provided");
            }


            var         restclient = new RestClient(Constants.BaseUrl);
            RestRequest request    = new RestRequest(orderCancelEndPoint)
            {
                Method = Method.POST
            };

            request.AddCommonHeaders(accessToken);
            request.AddParameter(string.Empty, JsonConvert.SerializeObject(order, new DefaultJsonSerializer()), ParameterType.RequestBody);

            var tResponse = restclient.Execute(request);
        }
示例#4
0
        public StockSummaryResultType GetItemStockSummary(int itemId, string accessToken)
        {
            if (string.IsNullOrEmpty(accessToken))
            {
                throw new ArgumentNullException(nameof(accessToken), Constants.MissingAccessTokenMessage);
            }
            if (itemId == 0)
            {
                throw new ArgumentException(Constants.MissingItemIdMessage);
            }

            var         restclient = new RestClient(Constants.BaseUrl);
            string      rql        = string.Format("rql=itemid=={0}", itemId);
            RestRequest request    = new RestRequest(string.Format(stockSummaryEndPoint, rql))
            {
                Method = Method.GET
            };

            request.AddCommonHeaders(accessToken);

            var tResponse = restclient.Execute(request);

            return(JsonConvert.DeserializeObject <StockSummaryResultType>(tResponse.Content));
        }
示例#5
0
        public ItemCollectionResultType GetList(GetItemListCriteria criteria, int customerId, string accessToken)
        {
            if (string.IsNullOrEmpty(accessToken))
            {
                throw new ArgumentNullException(nameof(accessToken), Constants.MissingAccessTokenMessage);
            }
            if (customerId == 0)
            {
                throw new ArgumentException(Constants.MissingCustomerIdMessage);
            }

            var         restclient = new RestClient(Constants.BaseUrl);
            string      itemsUrl   = criteria != null && criteria.PageNumber > 0 ? string.Format(itemEndPointWithPageQuery, customerId, criteria.PageSize, criteria.PageNumber) : string.Format(itemEndPoint, customerId);
            RestRequest request    = new RestRequest(itemsUrl)
            {
                Method = Method.GET
            };

            request.AddCommonHeaders(accessToken);

            var tResponse = restclient.Execute(request);

            return(JsonConvert.DeserializeObject <ItemCollectionResultType>(tResponse.Content));
        }
示例#6
0
        public void Delete(int Id, int customerId, string accessToken)
        {
            if (string.IsNullOrEmpty(accessToken))
            {
                throw new ArgumentNullException(nameof(accessToken), Constants.MissingAccessTokenMessage);
            }
            if (customerId == 0)
            {
                throw new ArgumentException(Constants.MissingCustomerIdMessage);
            }
            if (Id == 0)
            {
                throw new ArgumentNullException(Constants.MissingItemIdMessage);
            }
            string      rql        = string.Format("itemId=={0}", Id);
            var         restclient = new RestClient(Constants.BaseUrl);
            RestRequest request    = new RestRequest(string.Format(itemEndPoint, customerId) + "?rql=" + rql)
            {
                Method = Method.DELETE
            };

            request.AddCommonHeaders(accessToken);
            var tResponse = restclient.Execute(request);
        }
示例#7
0
        public OrderDetailResultType GetOrderDetails(int orderId, string accessToken)
        {
            if (string.IsNullOrEmpty(accessToken))
            {
                throw new ArgumentNullException(nameof(accessToken), Constants.MissingAccessTokenMessage);
            }
            if (orderId == 0)
            {
                throw new ArgumentException(Constants.MissingOrderIdMessage);
            }


            var         restclient = new RestClient(Constants.BaseUrl);
            RestRequest request    = new RestRequest(string.Format(orderDetailsEndPoint, orderId))
            {
                Method = Method.GET
            };

            request.AddCommonHeaders(accessToken);

            var tResponse = restclient.Execute(request);

            return(JsonConvert.DeserializeObject <OrderDetailResultType>(tResponse.Content));
        }