You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
using Common.Models; using Common.Models.RequestResponse; using Common.Utility; using log4net; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Net.Http.Headers; using System.Text; using System.Threading.Tasks;
namespace Business.BusinessLogic.Signature { public class ApiHelper {
private static int timeOut = 100; private string tp_base_url = GetStatic.ReadWebConfig("signature_Base_Url", ""); private readonly ILog _log = LogManager.GetLogger(typeof(ApiHelper));
public ResponseModel ThirdPartyApi<RequestModel, ResponseModel>(RequestModel model, string method, out TPResponse jsonResponse, string MethodType = "post") { ResponseModel _responseModel = default(ResponseModel); using (HttpClient httpClient = new HttpClient()) { try { httpClient.BaseAddress = new Uri(tp_base_url); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); httpClient.Timeout = new TimeSpan(0, 0, timeOut); HttpResponseMessage resp = new HttpResponseMessage(); if (MethodType.ToLower().Equals("get")) resp = httpClient.GetAsync(method).Result; if (MethodType.ToLower().Equals("put")) { StringContent jbdContent = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json"); resp = httpClient.PutAsync(method, jbdContent).Result; } if (MethodType.ToLower().Equals("post")) { StringContent jbdContent = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json"); resp = httpClient.PostAsync(method, jbdContent).Result; } string resultData = resp.Content.ReadAsStringAsync().Result; if (resp.IsSuccessStatusCode) { var result = resp.Content.ReadAsStringAsync().Result; JObject a = JObject.Parse(result); _responseModel = a.ToObject<ResponseModel>(); } else { _log.Debug("ThirdPartyApi | RESPONSE: " + resp.ToString()); jsonResponse = new TPResponse() { Id = resp.StatusCode.ToString(), Msg = resp.Content.ToString(), Data = resp }; } } catch (HttpRequestException ex) { jsonResponse = new TPResponse() { ResponseCode = "999", Msg = ex.ToString(), Data = ex.Data, }; _responseModel = default(ResponseModel); } catch (Exception ex) { jsonResponse = new TPResponse() { ResponseCode = "999", Msg = ex.ToString(), Data = ex.Data, }; _responseModel = default(ResponseModel); } };
jsonResponse = new TPResponse() { ResponseCode = "0", Msg = "Api Calling process successfully!" }; return _responseModel; } } }
|