ApiFunctions.cs 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339
  1. using LotteryWebApp.Common;
  2. using Microsoft.Extensions.Configuration;
  3. using Newtonsoft.Json;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Net.Http;
  7. using System.Net.Http.Headers;
  8. using System.Text;
  9. using System.Text.Json;
  10. using System.Threading.Tasks;
  11. using JsonSerializer = System.Text.Json.JsonSerializer;
  12. namespace LotteryWebApp.Service
  13. {
  14. public class APIFunctions
  15. {
  16. private static readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof(Program));
  17. public RegisterResponse UserLoginApi(IConfiguration configuration, RegisterRequest registerRequest)
  18. {
  19. String url = configuration.GetSection("user_register").Value;
  20. registerRequest.Users = registerRequest.Msisdn;
  21. registerRequest.Command = ApiConstants.LOGIN;
  22. registerRequest.Channel = configuration.GetSection("channel").Value;
  23. registerRequest.serviceId = ApiConstants.SERVICE_ID;
  24. registerRequest.channel = configuration.GetSection("channel").Value;
  25. string jsonData = SendPost(registerRequest, ApiConstants.SERVICE_ID, url);
  26. RegisterResponse deptObj = JsonSerializer.Deserialize<RegisterResponse>(jsonData);
  27. return deptObj;
  28. }
  29. public RegisterResponse UserForgotPasswordApi(IConfiguration configuration, RegisterRequest registerRequest)
  30. {
  31. String url = configuration.GetSection("user_register").Value;
  32. registerRequest.Users = registerRequest.Msisdn;
  33. registerRequest.Command = ApiConstants.RESETPASS;
  34. registerRequest.Channel = configuration.GetSection("channel").Value;
  35. registerRequest.serviceId = ApiConstants.SERVICE_ID;
  36. registerRequest.channel = configuration.GetSection("channel").Value;
  37. string jsonData = SendPost(registerRequest, ApiConstants.SERVICE_ID, url);
  38. RegisterResponse deptObj = JsonSerializer.Deserialize<RegisterResponse>(jsonData);
  39. return deptObj;
  40. }
  41. public RegisterResponse UserChangePasswordApi(IConfiguration configuration, RegisterRequest registerRequest)
  42. {
  43. registerRequest.Command = ApiConstants.CHANGEPASS;
  44. registerRequest.Channel = configuration.GetSection("channel").Value;
  45. registerRequest.Users = registerRequest.Msisdn;
  46. registerRequest.serviceId = ApiConstants.SERVICE_ID;
  47. registerRequest.channel = configuration.GetSection("channel").Value;
  48. String url = configuration.GetSection("user_register").Value;
  49. String jsonData = SendPost(registerRequest, ApiConstants.SERVICE_ID, url);
  50. RegisterResponse deptObj = JsonSerializer.Deserialize<RegisterResponse>(jsonData);
  51. return deptObj;
  52. }
  53. public RegisterResponse UserRegisterApi(IConfiguration configuration, RegisterRequest registerRequest)
  54. {
  55. registerRequest.Command = ApiConstants.REGIST;
  56. registerRequest.Channel = configuration.GetSection("channel").Value;
  57. registerRequest.Users = registerRequest.Msisdn;
  58. registerRequest.serviceId = ApiConstants.SERVICE_ID;
  59. registerRequest.channel = configuration.GetSection("channel").Value;
  60. String url = configuration.GetSection("user_register").Value;
  61. String jsonData = SendPost(registerRequest, ApiConstants.SERVICE_ID, url);
  62. RegisterResponse deptObj = JsonSerializer.Deserialize<RegisterResponse>(jsonData);
  63. return deptObj;
  64. }
  65. public Profile UserLoadProfileApi(IConfiguration configuration, UserGetProfileRequest userGetProfileRequest)
  66. {
  67. userGetProfileRequest.usersQuery = userGetProfileRequest.users;
  68. userGetProfileRequest.serviceId = ApiConstants.SERVICE_ID;
  69. userGetProfileRequest.channel = configuration.GetSection("channel").Value;
  70. String url = configuration.GetSection("user_get_profile").Value;
  71. String jsonData = SendPost(userGetProfileRequest, ApiConstants.SERVICE_ID, url);
  72. Profile deptObj = JsonSerializer.Deserialize<Profile>(jsonData);
  73. deptObj.realPicture = deptObj.picture;
  74. deptObj.picture = Constants.PATH + deptObj.users + "/" + deptObj.picture;
  75. return deptObj;
  76. }
  77. public UserUpdateProfileResponse UserUpdateProfileApi(IConfiguration configuration, UserUpdateProfileRequest userUpdateProfileRequest)
  78. {
  79. userUpdateProfileRequest.serviceId = ApiConstants.SERVICE_ID;
  80. userUpdateProfileRequest.channel = configuration.GetSection("channel").Value;
  81. String url = configuration.GetSection("user_update_profile").Value;
  82. String jsonData = SendPost(userUpdateProfileRequest, ApiConstants.SERVICE_ID, url);
  83. UserUpdateProfileResponse deptObj = JsonSerializer.Deserialize<UserUpdateProfileResponse>(jsonData);
  84. return deptObj;
  85. }
  86. public UserPicUploadResponse UserPicUploadApi(IConfiguration configuration, UserPicUploadRequest userPicUploadRequest)
  87. {
  88. userPicUploadRequest.serviceId = ApiConstants.SERVICE_ID;
  89. userPicUploadRequest.channel = configuration.GetSection("channel").Value;
  90. String url = configuration.GetSection("user_pic_upload").Value;
  91. String jsonData = SendPost(userPicUploadRequest, ApiConstants.SERVICE_ID, url);
  92. UserPicUploadResponse deptObj = JsonSerializer.Deserialize<UserPicUploadResponse>(jsonData);
  93. return deptObj;
  94. }
  95. public UserStatus GetUserStatusApi(IConfiguration configuration, UserStatusRequest userStatusRequest)
  96. {
  97. userStatusRequest.serviceId = ApiConstants.SERVICE_ID;
  98. userStatusRequest.channel = configuration.GetSection("channel").Value;
  99. String url = configuration.GetSection("get_user_status").Value;
  100. String jsonData = SendPost(userStatusRequest, ApiConstants.SERVICE_ID, url);
  101. UserStatus deptObj = JsonSerializer.Deserialize<UserStatus>(jsonData);
  102. return deptObj;
  103. }
  104. public ResultOfTermResponse GetResultOfTermApi(IConfiguration configuration, ResultOfTermRequest resultOfTermRequest)
  105. {
  106. resultOfTermRequest.serviceId = ApiConstants.SERVICE_ID;
  107. resultOfTermRequest.channel = configuration.GetSection("channel").Value;
  108. String url = configuration.GetSection("get_result_of_term").Value;
  109. String jsonData = SendPost(resultOfTermRequest, ApiConstants.SERVICE_ID, url);
  110. ResultOfTermResponse deptObj = JsonSerializer.Deserialize<ResultOfTermResponse>(jsonData);
  111. return deptObj;
  112. }
  113. public TransferMoneyResponse TransferMoneyApi(IConfiguration configuration, TransferMoneyRequest transferMoneyRequest)
  114. {
  115. transferMoneyRequest.serviceId = ApiConstants.SERVICE_ID;
  116. transferMoneyRequest.channel = configuration.GetSection("channel").Value;
  117. String url = configuration.GetSection("transfer_money").Value;
  118. String jsonData = SendPost(transferMoneyRequest, ApiConstants.SERVICE_ID, url);
  119. TransferMoneyResponse deptObj = JsonSerializer.Deserialize<TransferMoneyResponse>(jsonData);
  120. return deptObj;
  121. }
  122. public SendOTPResponse SendOTPApi(IConfiguration configuration, SendOTPRequest sendOTPRequest)
  123. {
  124. sendOTPRequest.serviceId = ApiConstants.SERVICE_ID;
  125. sendOTPRequest.channel = configuration.GetSection("channel").Value;
  126. String url = configuration.GetSection("send_otp").Value;
  127. String jsonData = SendPost(sendOTPRequest, ApiConstants.SERVICE_ID, url);
  128. SendOTPResponse deptObj = JsonSerializer.Deserialize<SendOTPResponse>(jsonData);
  129. return deptObj;
  130. }
  131. public TransactionInfoResponse GetTransactionInfoApi(IConfiguration configuration, TransactionInfoRequest transactionInfoRequest)
  132. {
  133. transactionInfoRequest.serviceId = ApiConstants.SERVICE_ID;
  134. transactionInfoRequest.channel = configuration.GetSection("channel").Value;
  135. String url = configuration.GetSection("get_transaction_info").Value;
  136. String jsonData = SendPost(transactionInfoRequest, ApiConstants.SERVICE_ID, url);
  137. TransactionInfoResponse deptObj = JsonSerializer.Deserialize<TransactionInfoResponse>(jsonData);
  138. return deptObj;
  139. }
  140. public ConfirmTicketDataResponse ConfirmTicketDataApi(IConfiguration configuration, ConfirmTicketDataRequest confirmTicketDataRequest)
  141. {
  142. confirmTicketDataRequest.serviceId = ApiConstants.SERVICE_ID;
  143. confirmTicketDataRequest.channel = configuration.GetSection("channel").Value;
  144. String url = configuration.GetSection("confirm_ticket_data").Value;
  145. String jsonData = SendPost(confirmTicketDataRequest, ApiConstants.SERVICE_ID, url);
  146. ConfirmTicketDataResponse deptObj = JsonSerializer.Deserialize<ConfirmTicketDataResponse>(jsonData);
  147. return deptObj;
  148. }
  149. public ConfirmOTPResponse ConfirmOTPApi(IConfiguration configuration, ConfirmOTPRequest confirmOTPRequest)
  150. {
  151. confirmOTPRequest.serviceId = ApiConstants.SERVICE_ID;
  152. confirmOTPRequest.channel = configuration.GetSection("channel").Value;
  153. String url = configuration.GetSection("confirm_otp").Value;
  154. String jsonData = SendPost(confirmOTPRequest, ApiConstants.SERVICE_ID, url);
  155. ConfirmOTPResponse deptObj = JsonSerializer.Deserialize<ConfirmOTPResponse>(jsonData);
  156. return deptObj;
  157. }
  158. public ConfirmBuyingTicketResponse ConfirmBuyingTicketApi(IConfiguration configuration, ConfirmBuyingTicketRequest confirmBuyingTicketRequest)
  159. {
  160. confirmBuyingTicketRequest.serviceId = ApiConstants.SERVICE_ID;
  161. confirmBuyingTicketRequest.channel = configuration.GetSection("channel").Value;
  162. String url = configuration.GetSection("confirm_buying_ticket").Value;
  163. String jsonData = SendPost(confirmBuyingTicketRequest, ApiConstants.SERVICE_ID, url);
  164. ConfirmBuyingTicketResponse deptObj = JsonSerializer.Deserialize<ConfirmBuyingTicketResponse>(jsonData);
  165. return deptObj;
  166. }
  167. public UserTicketResponse GetUserTicketApi(IConfiguration configuration, UserTicketRequest userTicketRequest)
  168. {
  169. userTicketRequest.serviceId = ApiConstants.SERVICE_ID;
  170. userTicketRequest.channel = configuration.GetSection("channel").Value;
  171. String url = configuration.GetSection("get_user_ticket").Value;
  172. String jsonData = SendPost(userTicketRequest, ApiConstants.SERVICE_ID, url);
  173. UserTicketResponse deptObj = JsonSerializer.Deserialize<UserTicketResponse>(jsonData);
  174. return deptObj;
  175. }
  176. public GetTopWininerResponse GetTopWinnerApi(IConfiguration configuration, GetTopWinnerRequest userTicketRequest)
  177. {
  178. userTicketRequest.serviceId = ApiConstants.SERVICE_ID;
  179. String url = configuration.GetSection("get_top_winner").Value;
  180. String jsonData = SendPost(userTicketRequest, ApiConstants.SERVICE_ID, url);
  181. GetTopWininerResponse deptObj = JsonSerializer.Deserialize<GetTopWininerResponse>(jsonData);
  182. return deptObj;
  183. }
  184. //public AutoLoginResponse AutoLoginApi(IConfiguration configuration, AutoLoginRequest request)
  185. //{
  186. // String url = configuration.GetSection("auto_login").Value;
  187. // String jsonData = SendPostObj(request, ApiConstants.SERVICE_ID, url);
  188. // AutoLoginResponse deptObj = JsonSerializer.Deserialize<AutoLoginResponse>(jsonData);
  189. // return deptObj;
  190. //}
  191. public async Task<AutoLoginResponse> AutoLoginApiAsync(IConfiguration configuration, AutoLoginRequest request)
  192. {
  193. String url = configuration.GetSection("auto_login").Value;
  194. String jsonData = await SendFormDataPostAsync(request.token, url);
  195. //String jsonData = "{\"code\":200,\"message\":\"Success\",\"data\":{\"tokenGame\":\"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ1c2VySW5mb3IiLCJleHAiOjE3MDU1NTIzODgsInV1aWQiOiI2ZmQ1MWE0YzcyNzAxMTBmMzViNTFjODUyNTAwZjZmOSJ9.1cg95nEMdFTZRaccKDw7cVWArfXXq2JkSY6WrOos7Tg\",\"msisdn\":\"+50942133007\",\"name\":\"Test 007 Julyy May Skuhyu\",\"birthday\":\"1999-02-25\"}}";
  196. //String jsonData = "{\"code\":200,\"message\":\"Success\",\"data\":{\"tokenGame\":\"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ1c2VySW5mb3IiLCJleHAiOjE3MDU1NTIzODgsInV1aWQiOiI2ZmQ1MWE0YzcyNzAxMTBmMzViNTFjODUyNTAwZjZmOSJ9.1cg95nEMdFTZRaccKDw7cVWArfXXq2JkSY6WrOos7Tg\",\"msisdn\":\"+50955797979\",\"name\":\"Test 007 Julyy May Skuhyu\",\"birthday\":\"1999-02-25\"}}";
  197. //"{ "code":200,"message":"Success","data":{ "tokenGame":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ1c2VySW5mb3IiLCJleHAiOjE3MTAzODE0NTksInV1aWQiOiI1MGEwYjNlNzk5ZjllZDU3YTE1ZjZjNjljODVmYTM3NSJ9.EgR-P_KzsHJ1XCdgeu25Gy_-qAHOfM9uv9RTZSvr0AA","msisdn":"+50955797979","name":"Morgan Dinh","birthday":"1983-06-23"} }
  198. AutoLoginResponse deptObj = JsonSerializer.Deserialize<AutoLoginResponse>(jsonData);
  199. return deptObj;
  200. }
  201. public CheckAccountResponse CheckAccountApi(IConfiguration configuration, CheckAccountRequest checkAccountRequest)
  202. {
  203. checkAccountRequest.serviceId = ApiConstants.SERVICE_ID;
  204. String url = configuration.GetSection("check_account").Value;
  205. String jsonData = SendPost(checkAccountRequest, ApiConstants.SERVICE_ID, url);
  206. CheckAccountResponse deptObj = JsonSerializer.Deserialize<CheckAccountResponse>(jsonData);
  207. return deptObj;
  208. }
  209. private async Task<string> SendFormDataPostAsync(string token, String url)
  210. {
  211. log.Debug(url);
  212. log.Debug("Request token: " + token);
  213. var parameters = new Dictionary<string, string>();
  214. parameters.Add("token", token);
  215. using (HttpClient client = new HttpClient())
  216. {
  217. client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
  218. HttpResponseMessage response = client.PostAsync(url, new FormUrlEncodedContent(parameters)).Result;
  219. var responseString = response.Content.ReadAsStringAsync().Result;
  220. log.Debug("Response: " + responseString);
  221. return responseString;
  222. }
  223. }
  224. private String SendPost(Posting obj, String serviceId, String url)
  225. {
  226. // get configuration
  227. obj.serviceId = serviceId;
  228. obj.SV_ID = serviceId;
  229. obj.service_id = serviceId;
  230. var json = JsonConvert.SerializeObject(obj);
  231. var data = new StringContent(json, Encoding.UTF8, "application/json");
  232. log.Debug(url);
  233. log.Debug("Request: " + json);
  234. using (var client = new HttpClient())
  235. {
  236. var response = client.PostAsync(url, data).Result;
  237. if (response.IsSuccessStatusCode)
  238. {
  239. var responseContent = response.Content;
  240. // by calling .Result you are synchronously reading the result
  241. string responseString = responseContent.ReadAsStringAsync().Result;
  242. log.Debug("Response: " + responseString);
  243. return responseString;
  244. }
  245. else
  246. {
  247. log.Error("Response: " + response.StatusCode.ToString());
  248. return response.StatusCode.ToString();
  249. }
  250. }
  251. }
  252. private String SendPostObj(Object obj, String serviceId, String url)
  253. {
  254. var json = JsonConvert.SerializeObject(obj);
  255. var data = new StringContent(json, Encoding.UTF8, "application/json");
  256. log.Debug(url);
  257. log.Debug("Request: " + json);
  258. using (var client = new HttpClient())
  259. {
  260. var response = client.PostAsync(url, data).Result;
  261. if (response.IsSuccessStatusCode)
  262. {
  263. var responseContent = response.Content;
  264. // by calling .Result you are synchronously reading the result
  265. string responseString = responseContent.ReadAsStringAsync().Result;
  266. log.Debug("Response: " + responseString);
  267. return responseString;
  268. }
  269. else
  270. {
  271. log.Error("Response: " + response.StatusCode.ToString());
  272. return response.StatusCode.ToString();
  273. }
  274. }
  275. }
  276. }
  277. }