public async Task <string> EpicorRequest(string jsonPayload, Uri endPoint, HttpMethod httpMethod) { HttpRequestMessage epicorRequest = null; HttpResponseMessage epicorResponse = null; try { epicorRequest = new HttpRequestMessage(httpMethod, new Uri(EpicorClient.BaseAddress, endPoint)); epicorRequest.Content = new StringContent(jsonPayload, Encoding.UTF8, "application/json"); epicorResponse = await EpicorClient.SendAsync(epicorRequest); if (epicorResponse.IsSuccessStatusCode) { return(await epicorResponse.Content.ReadAsStringAsync()); } else { throw new EpicorAPIException(await epicorResponse.Content.ReadAsStringAsync(), jsonPayload); } } catch (EpicorAPIException epicorEx) { throw epicorEx; } catch (Exception ex) { throw ex; } finally { epicorRequest.Dispose(); epicorResponse.Dispose(); } }
public async Task <string> GetWithODataOptions(ServiceEntity serviceEntity, string expandOptions = null, string selectOptions = null, string filterKey = null) { HttpRequestMessage epicorRequest = null; HttpResponseMessage epicorResponse = null; string oDataQueryString = null; if (!string.IsNullOrEmpty(expandOptions)) //build OData query string depending on if some options are blank or not { oDataQueryString = "$expand=" + expandOptions; } if (!string.IsNullOrEmpty(selectOptions)) { if (!string.IsNullOrEmpty(expandOptions)) { oDataQueryString += "&$select=" + selectOptions; } else { oDataQueryString += "$select=" + selectOptions; } } if (!string.IsNullOrEmpty(filterKey)) { if (!string.IsNullOrEmpty(expandOptions) || !string.IsNullOrEmpty(selectOptions)) { oDataQueryString += "&$filter=" + filterKey; } else { oDataQueryString += "$filter=" + filterKey; } } try { epicorRequest = new HttpRequestMessage(HttpMethod.Get, //continued on next line new Uri($"{serviceEntity.EntityService}?{oDataQueryString}", UriKind.Relative)); epicorRequest.Headers.Add("Accept", "application/json"); epicorResponse = await EpicorClient.SendAsync(epicorRequest); string contentString = await epicorResponse.Content.ReadAsStringAsync(); if (epicorResponse.IsSuccessStatusCode) { return(contentString); } else { throw new EpicorAPIException(await epicorRequest.Content.ReadAsStringAsync(), await epicorResponse.Content.ReadAsStringAsync()); } } catch (EpicorAPIException epicorEx) { throw epicorEx; } finally { epicorRequest.Dispose(); epicorResponse.Dispose(); } }
protected virtual void Dispose(bool disposing) { if (disposed) { return; } if (disposing) { EpicorClient.Dispose(); EpicorClientHandler.Dispose(); } disposed = true; }