/// <summary> /// TODO: type endpoint description here /// </summary> /// <param name="Models.GetOrdersInput">Object containing request parameters</param> /// <return>Returns the Models.GetOrdersResponseModel response from the API call</return> public Models.GetOrdersResponseModel GetOrders(Models.GetOrdersInput input) { Task <Models.GetOrdersResponseModel> t = GetOrdersAsync(input); APIHelper.RunTaskSynchronously(t); return(t.Result); }
/// <summary> /// Retrieves a list of orders under a platform /// </summary> /// <param name="Models.GetOrdersInput">Object containing request parameters</param> /// <return>Returns the Models.GetOrdersResponseModel response from the API call</return> public async Task <Models.GetOrdersResponseModel> GetOrdersAsync(Models.GetOrdersInput input) { //the base uri for api requests string _baseUri = Configuration.GetBaseURI(); //prepare query string for API call StringBuilder _queryBuilder = new StringBuilder(_baseUri); _queryBuilder.Append("/orders"); //process optional query parameters APIHelper.AppendUrlWithQueryParameters(_queryBuilder, new Dictionary <string, object>() { { "accountIdentifier", input.AccountIdentifier }, { "customerIdentifier", input.CustomerIdentifier }, { "externalRefID", input.ExternalRefID }, { "startDate", (input.StartDate.HasValue) ? input.StartDate.Value.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK") : null }, { "endDate", (input.EndDate.HasValue) ? input.EndDate.Value.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK") : null }, { "elementsPerBlock", input.ElementsPerBlock }, { "page", input.Page } }, ArrayDeserializationFormat, ParameterSeparator); //validate and preprocess url string _queryUrl = APIHelper.CleanUrl(_queryBuilder); //append request with appropriate headers and parameters var _headers = new Dictionary <string, string>() { { "user-agent", "V2NGSDK" }, { "accept", "application/json" } }; //prepare the API call request to fetch the response HttpRequest _request = ClientInstance.Get(_queryUrl, _headers, Configuration.PlatformName, Configuration.PlatformKey); //invoke request and get response HttpStringResponse _response = (HttpStringResponse)await ClientInstance.ExecuteAsStringAsync(_request).ConfigureAwait(false); HttpContext _context = new HttpContext(_request, _response); //Error handling using HTTP status codes if ((_response.StatusCode < 200) || (_response.StatusCode > 208)) //[200,208] = HTTP OK { throw new RaasGenericException(@"API Error", _context); } //handle errors defined at the API level base.ValidateResponse(_response, _context); try { return(APIHelper.JsonDeserialize <Models.GetOrdersResponseModel>(_response.Body)); } catch (Exception _ex) { throw new APIException("Failed to parse the response: " + _ex.Message, _context); } }