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.

230 lines
11 KiB

11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
  1. using CustomerOnlineV2.Common.Models;
  2. using CustomerOnlineV2.Common.Models.TransactionModel;
  3. using CustomerOnlineV2.Common.Models.RegisterModel;
  4. using Microsoft.Extensions.Logging;
  5. using Newtonsoft.Json;
  6. using System.Text;
  7. using static System.Runtime.InteropServices.JavaScript.JSType;
  8. using static CustomerOnlineV2.Common.Models.CommonResponse;
  9. using CustomerOnlineV2.Common.Models.Notification;
  10. using Microsoft.Extensions.Configuration;
  11. using CustomerOnlineV2.Common.Helper;
  12. namespace CustomerOnlineV2.Api.API.TPApi
  13. {
  14. public class TPApiService : ITPApiService
  15. {
  16. private readonly ILogger<TPApiService> _logger;
  17. private readonly IConfiguration _configuration;
  18. public TPApiService(ILogger<TPApiService> logger, IConfiguration configuration)
  19. {
  20. _logger = logger;
  21. _configuration = configuration;
  22. }
  23. public string tp_base_url = Utilities.ReadFromAppSettings("tp_base_url");
  24. public async Task<ExrateResponse> GetExRate(ExrateCalculateRequestModel _request)
  25. {
  26. ExrateResponse _response = new ExrateResponse();
  27. TPResponse _responseTP = new TPResponse();
  28. using (HttpClient client = new HttpClient())
  29. {
  30. try
  31. {
  32. var content = new StringContent(JsonConvert.SerializeObject(_request), Encoding.UTF8, "application/json");
  33. _logger.LogDebug("TPAPISERVICE | GETEXRATE | CALLING TPAPI | " + JsonConvert.SerializeObject(_request));
  34. // Send the POST request
  35. string url = $"{tp_base_url}Tp/ExRate";
  36. HttpResponseMessage response = await client.PostAsync(url, content);
  37. _logger.LogDebug($"TPAPISERVICE | GETEXRATE | API RESPONSE | RESPONSE CODE: {response.StatusCode}| RESPONSE: {JsonConvert.SerializeObject(response.Content.ReadAsStringAsync())}");
  38. // Check if the response is successful
  39. if (response.IsSuccessStatusCode)
  40. {
  41. string responseContent = await response.Content.ReadAsStringAsync();
  42. _responseTP = JsonConvert.DeserializeObject<TPResponse>(responseContent);
  43. _response.ResponseCode = Convert.ToInt16(_responseTP.ResponseCode);
  44. _response.ResponseMessage = _responseTP.Msg;
  45. if (_response.ResponseCode == ResponseHelper.SUCCESS)
  46. {
  47. _response = JsonConvert.DeserializeObject<ExrateResponse>(JsonConvert.SerializeObject(_responseTP.Data));
  48. _response.ResponseCode = ResponseHelper.SUCCESS;
  49. _response.ResponseMessage = ResponseMessageHelper.SUCCESS;
  50. }
  51. }
  52. else
  53. {
  54. _response.ResponseCode = ResponseHelper.FAILED;
  55. _response.ResponseMessage = "Error occured while calling getting exrate from TPAPI: ";
  56. _logger.LogError("TRANSACTIONREPOSITORY | GETEXRATE | ERROR | " + JsonConvert.SerializeObject(_response));
  57. }
  58. }
  59. catch (Exception ex)
  60. {
  61. _response.ResponseCode = ResponseHelper.EXCEPTION;
  62. _response.ResponseMessage = "Exception occured: " + ex.Message;
  63. _logger.LogError("TRANSACTIONREPOSITORY | GETEXRATE | EXCEPTION | " + JsonConvert.SerializeObject(_response));
  64. }
  65. }
  66. return _response;
  67. }
  68. public async Task<SendMoneyResponse> SendMoney(SendMoneyRequestModel _request)
  69. {
  70. SendMoneyResponse _response = new SendMoneyResponse();
  71. TPResponse _responseTP = new TPResponse();
  72. using (HttpClient client = new HttpClient())
  73. {
  74. try
  75. {
  76. var content = new StringContent(JsonConvert.SerializeObject(_request), Encoding.UTF8, "application/json");
  77. _logger.LogDebug("TPAPISERVICE | SENDMONEY | CALLING TPAPI | " + JsonConvert.SerializeObject(_request));
  78. // Send the POST request
  79. string url = $"{tp_base_url}TP/mobileSendTxn";
  80. HttpResponseMessage response = await client.PostAsync(url, content);
  81. _logger.LogDebug($"TPAPISERVICE | SENDMONEY | API RESPONSE | RESPONSE CODE: {response.StatusCode}| RESPONSE: {JsonConvert.SerializeObject(response.Content.ReadAsStringAsync())}");
  82. // Check if the response is successful
  83. if (response.IsSuccessStatusCode)
  84. {
  85. string responseContent = await response.Content.ReadAsStringAsync();
  86. _responseTP = JsonConvert.DeserializeObject<TPResponse>(responseContent);
  87. _response.ResponseCode = Convert.ToInt16(_responseTP.ResponseCode);
  88. _response.ResponseMessage = _responseTP.Msg;
  89. if (_response.ResponseCode == ResponseHelper.SUCCESS)
  90. {
  91. _response.ResponseCode = ResponseHelper.SUCCESS;
  92. _response.ResponseMessage = _responseTP.Msg;
  93. _response.ControlNo = _responseTP.Extra;
  94. _response.TransactionId = _responseTP.Id;
  95. _response.Extra2 = _responseTP.Extra2;
  96. _response.Extra3 = _responseTP.Extra3;
  97. }
  98. }
  99. else
  100. {
  101. _response.ResponseCode = ResponseHelper.FAILED;
  102. _response.ResponseMessage = "Error occured while calling getting exrate from TPAPI: ";
  103. _logger.LogError("TRANSACTIONREPOSITORY | SENDMONEY | ERROR | " + JsonConvert.SerializeObject(_response));
  104. }
  105. }
  106. catch (Exception ex)
  107. {
  108. _response.ResponseCode = ResponseHelper.EXCEPTION;
  109. _response.ResponseMessage = "Exception occured: " + ex.Message;
  110. _logger.LogError("TRANSACTIONREPOSITORY | SENDMONEY | EXCEPTION | " + JsonConvert.SerializeObject(_response));
  111. }
  112. }
  113. return _response;
  114. }
  115. public async Task<AddressListResponse> GetAddressList(AddressRequest _request)
  116. {
  117. AddressListResponse _response = new AddressListResponse();
  118. TPResponse _responseTP = new TPResponse();
  119. using (HttpClient client = new HttpClient())
  120. {
  121. try
  122. {
  123. var content = new StringContent(JsonConvert.SerializeObject(_request), Encoding.UTF8, "application/json");
  124. _logger.LogDebug("TPAPISERVICE | GETADDRESSLIST | CALLING TPAPI | " + JsonConvert.SerializeObject(_request));
  125. string url = $"{tp_base_url}TP/addressList";
  126. HttpResponseMessage response = await client.PostAsync(url, content);
  127. _logger.LogDebug($"TPAPISERVICE | GETADDRESSLIST | API RESPONSE | RESPONSE CODE: {response.StatusCode} | RESPONSE: {JsonConvert.SerializeObject(response.Content.ReadAsStringAsync())}");
  128. if (response.IsSuccessStatusCode)
  129. {
  130. string responseContent = await response.Content.ReadAsStringAsync();
  131. _responseTP = JsonConvert.DeserializeObject<TPResponse>(responseContent);
  132. _response.ResponseCode = Convert.ToInt16(_responseTP.ResponseCode);
  133. _response.Msg = _responseTP.Msg;
  134. if (_response.ResponseCode == ResponseHelper.SUCCESS)
  135. {
  136. _response.ResponseCode = ResponseHelper.SUCCESS;
  137. _response.Msg = _responseTP.Msg;
  138. _response.Data = _responseTP.Data;
  139. _response.Extra1 = _responseTP.Extra;
  140. _response.Extra2 = _responseTP.Extra2;
  141. }
  142. else
  143. {
  144. _response.ResponseCode = ResponseHelper.FAILED;
  145. _response.Msg = "Error occured while calling getting exrate from TPAPI: ";
  146. _logger.LogError("ADDRESSlISTRESPONSE | GETADDRESSLIST | ERROR | " + JsonConvert.SerializeObject(_response));
  147. }
  148. }
  149. }
  150. catch (Exception ex)
  151. {
  152. _response.ResponseCode = ResponseHelper.EXCEPTION;
  153. _response.Msg = "Exception occured: " + ex.Message;
  154. _logger.LogError("ADDRESSlISTRESPONSE | GETADDRESSLIST | ERROR | " + JsonConvert.SerializeObject(_response));
  155. }
  156. }
  157. return _response;
  158. }
  159. public async Task<CommonResponse> SendNotification(SendNotificationRequest request, NOTIFICATION_TYPE nOTIFICATION_TYPE = NOTIFICATION_TYPE.PUSH_NOTIFICATION)
  160. {
  161. CommonResponse jsonResponse = new CommonResponse();
  162. using (HttpClient client = new HttpClient())
  163. {
  164. var obj = JsonConvert.SerializeObject(request);
  165. var jbdContent = new StringContent(obj.ToString(), Encoding.UTF8, "application/json");
  166. try
  167. {
  168. string URL = $"{tp_base_url}NotificationAPI";
  169. HttpResponseMessage resp = client.PostAsync(URL, jbdContent).Result;
  170. string resultData = resp.Content.ReadAsStringAsync().Result;
  171. if (resp.IsSuccessStatusCode)
  172. {
  173. jsonResponse = JsonConvert.DeserializeObject<CommonResponse>(resultData);
  174. var a = (jsonResponse.Data != null ? JsonConvert.DeserializeObject<CommonResponse>(jsonResponse.Data.ToString()) : null);
  175. jsonResponse.Data = a;
  176. return jsonResponse;
  177. }
  178. else
  179. {
  180. var errorJson = JsonConvert.DeserializeObject<CommonResponse.ErrorJosn>(resultData);
  181. var jsonResponseData = JsonConvert.DeserializeObject<CommonResponse>(errorJson.Message);
  182. jsonResponse.Id = jsonResponseData.Id;
  183. jsonResponse.ResponseCode = jsonResponseData.ResponseCode;
  184. jsonResponse.Msg = jsonResponseData.Msg;
  185. jsonResponse.Extra = jsonResponseData.Extra;
  186. jsonResponse.Extra1 = jsonResponseData.Extra1;
  187. return jsonResponse;
  188. }
  189. }
  190. catch (Exception ex)
  191. {
  192. return new CommonResponse()
  193. {
  194. ResponseCode = 1,
  195. Msg = (ex.InnerException == null ? ex.Message : ex.InnerException.Message)
  196. };
  197. }
  198. }
  199. }
  200. }
  201. }