string generateErrors(StreamReader reader, WebException wex) { var result = reader.ReadToEnd(); HttpStatusCode statusCode = GetHttpStatusCode(wex); if (HttpStatusCode.Unauthorized == statusCode) { Errors error = JsonConvert.DeserializeObject<Errors>(result); var _errors = new { errors = new[] { error } }; string jsons = JsonConvert.SerializeObject(_errors, Formatting.None, new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Ignore }); return jsons; } if (HttpStatusCode.BadRequest == statusCode) { return result; } dynamic data = JsonConvert.DeserializeObject(result); if (data != null && (data.cause != null || data.message != null)) { Errors error = JsonConvert.DeserializeObject<Errors>(result); var _errors = new { errors = new[] { error } }; string jsons = JsonConvert.SerializeObject(_errors, Formatting.None, new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Ignore }); return jsons; } else { Errors error = new Errors(); error.Status = "BAD_REQUEST"; error.Code = "9995"; error.Location = "404 not found."; error.Reason = "No records Found"; error.Severity = "ERROR"; var _errors = new { errors = new[] { error } }; string jsons = JsonConvert.SerializeObject(_errors, Formatting.None, new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Ignore }); return jsons; } }
/// <summary> /// Perform a new query that retrieves you the Transaction results from a set of parameters. /// /// <param name="parameters"> /// String parameters: the set of parameters to search the transactions. /// </param> /// <returns> /// a TransactionReportInformation List object. /// </returns> /// <seealso cref="PayHubWS.com.payhub.ws.api.TransactionReportInformation"/> /// </summary> public List<TransactionReportInformation> findTransactions(TransactionSearchParameters parameters) { String url = _url + "report/transactionReport"; HttpWebRequest request = setHeadersPost(url, this._oauthToken); string json = JsonConvert.SerializeObject(parameters, Formatting.None, new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Ignore }); string result = findTransactionReports(request, json); List<TransactionReportInformation> response = new List<TransactionReportInformation>(); try { response = JsonConvert.DeserializeObject<List<TransactionReportInformation>>(result.ToString()); } catch { try { var node = JObject.Parse(result); List<Errors> errors = JsonConvert.DeserializeObject<List<Errors>>(node["errors"].ToString()); TransactionReportInformation t = new TransactionReportInformation(); t.Errors = errors; response.Add(t); } catch { List<Errors> errors = new List<Errors>(); Errors error = new Errors(); error.Reason = "Unknown Error"; errors.Add(error); TransactionReportInformation t = new TransactionReportInformation(); t.Errors = errors; response.Add(t); } } return response; }