ApiFunctions.cs 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350
  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 RpSearchDetailTicketResponse RpSearchDetailTicketApi(IConfiguration configuration, RpSearchDetailTicketRequest request)
  114. {
  115. request.serviceId = ApiConstants.SERVICE_ID;
  116. request.channel = configuration.GetSection("channel").Value;
  117. String url = configuration.GetSection("rp_search_detail_ticket").Value;
  118. String jsonData = SendPost(request, ApiConstants.SERVICE_ID, url);
  119. RpSearchDetailTicketResponse deptObj = JsonSerializer.Deserialize<RpSearchDetailTicketResponse>(jsonData);
  120. return deptObj;
  121. }
  122. public TransferMoneyResponse TransferMoneyApi(IConfiguration configuration, TransferMoneyRequest transferMoneyRequest)
  123. {
  124. transferMoneyRequest.serviceId = ApiConstants.SERVICE_ID;
  125. transferMoneyRequest.channel = configuration.GetSection("channel").Value;
  126. String url = configuration.GetSection("transfer_money").Value;
  127. String jsonData = SendPost(transferMoneyRequest, ApiConstants.SERVICE_ID, url);
  128. TransferMoneyResponse deptObj = JsonSerializer.Deserialize<TransferMoneyResponse>(jsonData);
  129. return deptObj;
  130. }
  131. public SendOTPResponse SendOTPApi(IConfiguration configuration, SendOTPRequest sendOTPRequest)
  132. {
  133. sendOTPRequest.serviceId = ApiConstants.SERVICE_ID;
  134. sendOTPRequest.channel = configuration.GetSection("channel").Value;
  135. String url = configuration.GetSection("send_otp").Value;
  136. String jsonData = SendPost(sendOTPRequest, ApiConstants.SERVICE_ID, url);
  137. SendOTPResponse deptObj = JsonSerializer.Deserialize<SendOTPResponse>(jsonData);
  138. return deptObj;
  139. }
  140. public TransactionInfoResponse GetTransactionInfoApi(IConfiguration configuration, TransactionInfoRequest transactionInfoRequest)
  141. {
  142. transactionInfoRequest.serviceId = ApiConstants.SERVICE_ID;
  143. transactionInfoRequest.channel = configuration.GetSection("channel").Value;
  144. String url = configuration.GetSection("get_transaction_info").Value;
  145. String jsonData = SendPost(transactionInfoRequest, ApiConstants.SERVICE_ID, url);
  146. TransactionInfoResponse deptObj = JsonSerializer.Deserialize<TransactionInfoResponse>(jsonData);
  147. return deptObj;
  148. }
  149. public ConfirmTicketDataResponse ConfirmTicketDataApi(IConfiguration configuration, ConfirmTicketDataRequest confirmTicketDataRequest)
  150. {
  151. confirmTicketDataRequest.serviceId = ApiConstants.SERVICE_ID;
  152. confirmTicketDataRequest.channel = configuration.GetSection("channel").Value;
  153. String url = configuration.GetSection("confirm_ticket_data").Value;
  154. String jsonData = SendPost(confirmTicketDataRequest, ApiConstants.SERVICE_ID, url);
  155. ConfirmTicketDataResponse deptObj = JsonSerializer.Deserialize<ConfirmTicketDataResponse>(jsonData);
  156. return deptObj;
  157. }
  158. public ConfirmOTPResponse ConfirmOTPApi(IConfiguration configuration, ConfirmOTPRequest confirmOTPRequest)
  159. {
  160. confirmOTPRequest.serviceId = ApiConstants.SERVICE_ID;
  161. confirmOTPRequest.channel = configuration.GetSection("channel").Value;
  162. String url = configuration.GetSection("confirm_otp").Value;
  163. String jsonData = SendPost(confirmOTPRequest, ApiConstants.SERVICE_ID, url);
  164. ConfirmOTPResponse deptObj = JsonSerializer.Deserialize<ConfirmOTPResponse>(jsonData);
  165. return deptObj;
  166. }
  167. public ConfirmBuyingTicketResponse ConfirmBuyingTicketApi(IConfiguration configuration, ConfirmBuyingTicketRequest confirmBuyingTicketRequest)
  168. {
  169. confirmBuyingTicketRequest.serviceId = ApiConstants.SERVICE_ID;
  170. confirmBuyingTicketRequest.channel = configuration.GetSection("channel").Value;
  171. String url = configuration.GetSection("confirm_buying_ticket").Value;
  172. String jsonData = SendPost(confirmBuyingTicketRequest, ApiConstants.SERVICE_ID, url);
  173. ConfirmBuyingTicketResponse deptObj = JsonSerializer.Deserialize<ConfirmBuyingTicketResponse>(jsonData);
  174. return deptObj;
  175. }
  176. public UserTicketResponse GetUserTicketApi(IConfiguration configuration, UserTicketRequest userTicketRequest)
  177. {
  178. userTicketRequest.serviceId = ApiConstants.SERVICE_ID;
  179. userTicketRequest.channel = configuration.GetSection("channel").Value;
  180. String url = configuration.GetSection("get_user_ticket").Value;
  181. String jsonData = SendPost(userTicketRequest, ApiConstants.SERVICE_ID, url);
  182. UserTicketResponse deptObj = JsonSerializer.Deserialize<UserTicketResponse>(jsonData);
  183. return deptObj;
  184. }
  185. public GetTopWininerResponse GetTopWinnerApi(IConfiguration configuration, GetTopWinnerRequest userTicketRequest)
  186. {
  187. userTicketRequest.serviceId = ApiConstants.SERVICE_ID;
  188. String url = configuration.GetSection("get_top_winner").Value;
  189. String jsonData = SendPost(userTicketRequest, ApiConstants.SERVICE_ID, url);
  190. GetTopWininerResponse deptObj = JsonSerializer.Deserialize<GetTopWininerResponse>(jsonData);
  191. return deptObj;
  192. }
  193. //public AutoLoginResponse AutoLoginApi(IConfiguration configuration, AutoLoginRequest request)
  194. //{
  195. // String url = configuration.GetSection("auto_login").Value;
  196. // String jsonData = SendPostObj(request, ApiConstants.SERVICE_ID, url);
  197. // AutoLoginResponse deptObj = JsonSerializer.Deserialize<AutoLoginResponse>(jsonData);
  198. // return deptObj;
  199. //}
  200. public async Task<AutoLoginResponse> AutoLoginApiAsync(IConfiguration configuration, AutoLoginRequest request)
  201. {
  202. String url = configuration.GetSection("auto_login").Value;
  203. String jsonData = await SendFormDataPostAsync(request.token, url);
  204. //String jsonData = "{\"code\":200,\"message\":\"Success\",\"data\":{\"tokenGame\":\"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ1c2VySW5mb3IiLCJleHAiOjE3MDU1NTIzODgsInV1aWQiOiI2ZmQ1MWE0YzcyNzAxMTBmMzViNTFjODUyNTAwZjZmOSJ9.1cg95nEMdFTZRaccKDw7cVWArfXXq2JkSY6WrOos7Tg\",\"msisdn\":\"+50942133007\",\"name\":\"Test 007 Julyy May Skuhyu\",\"birthday\":\"1999-02-25\"}}";
  205. //String jsonData = "{\"code\":200,\"message\":\"Success\",\"data\":{\"tokenGame\":\"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ1c2VySW5mb3IiLCJleHAiOjE3MDU1NTIzODgsInV1aWQiOiI2ZmQ1MWE0YzcyNzAxMTBmMzViNTFjODUyNTAwZjZmOSJ9.1cg95nEMdFTZRaccKDw7cVWArfXXq2JkSY6WrOos7Tg\",\"msisdn\":\"+50955797979\",\"name\":\"Test 007 Julyy May Skuhyu\",\"birthday\":\"1999-02-25\"}}";
  206. //"{ "code":200,"message":"Success","data":{ "tokenGame":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ1c2VySW5mb3IiLCJleHAiOjE3MTAzODE0NTksInV1aWQiOiI1MGEwYjNlNzk5ZjllZDU3YTE1ZjZjNjljODVmYTM3NSJ9.EgR-P_KzsHJ1XCdgeu25Gy_-qAHOfM9uv9RTZSvr0AA","msisdn":"+50955797979","name":"Morgan Dinh","birthday":"1983-06-23"} }
  207. AutoLoginResponse deptObj = JsonSerializer.Deserialize<AutoLoginResponse>(jsonData);
  208. return deptObj;
  209. }
  210. public CheckAccountResponse CheckAccountApi(IConfiguration configuration, CheckAccountRequest checkAccountRequest)
  211. {
  212. checkAccountRequest.serviceId = ApiConstants.SERVICE_ID;
  213. String url = configuration.GetSection("check_account").Value;
  214. String jsonData = SendPost(checkAccountRequest, ApiConstants.SERVICE_ID, url);
  215. CheckAccountResponse deptObj = JsonSerializer.Deserialize<CheckAccountResponse>(jsonData);
  216. return deptObj;
  217. }
  218. private async Task<string> SendFormDataPostAsync(string token, String url)
  219. {
  220. log.Debug(url);
  221. log.Debug("Request token: " + token);
  222. var parameters = new Dictionary<string, string>();
  223. parameters.Add("token", token);
  224. using (HttpClient client = new HttpClient())
  225. {
  226. client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
  227. HttpResponseMessage response = client.PostAsync(url, new FormUrlEncodedContent(parameters)).Result;
  228. var responseString = response.Content.ReadAsStringAsync().Result;
  229. log.Debug("Response: " + responseString);
  230. return responseString;
  231. }
  232. }
  233. private String SendPost(Posting obj, String serviceId, String url)
  234. {
  235. // get configuration
  236. obj.serviceId = serviceId;
  237. obj.SV_ID = serviceId;
  238. obj.service_id = serviceId;
  239. var json = JsonConvert.SerializeObject(obj);
  240. var data = new StringContent(json, Encoding.UTF8, "application/json");
  241. log.Debug(url);
  242. log.Debug("Request: " + json);
  243. using (var client = new HttpClient())
  244. {
  245. var response = client.PostAsync(url, data).Result;
  246. if (response.IsSuccessStatusCode)
  247. {
  248. var responseContent = response.Content;
  249. // by calling .Result you are synchronously reading the result
  250. string responseString = responseContent.ReadAsStringAsync().Result;
  251. log.Debug("Response: " + responseString);
  252. return responseString;
  253. }
  254. else
  255. {
  256. log.Error("Response: " + response.StatusCode.ToString());
  257. return response.StatusCode.ToString();
  258. }
  259. }
  260. }
  261. private String SendPostObj(Object obj, String serviceId, String url)
  262. {
  263. var json = JsonConvert.SerializeObject(obj);
  264. var data = new StringContent(json, Encoding.UTF8, "application/json");
  265. log.Debug(url);
  266. log.Debug("Request: " + json);
  267. using (var client = new HttpClient())
  268. {
  269. var response = client.PostAsync(url, data).Result;
  270. if (response.IsSuccessStatusCode)
  271. {
  272. var responseContent = response.Content;
  273. // by calling .Result you are synchronously reading the result
  274. string responseString = responseContent.ReadAsStringAsync().Result;
  275. log.Debug("Response: " + responseString);
  276. return responseString;
  277. }
  278. else
  279. {
  280. log.Error("Response: " + response.StatusCode.ToString());
  281. return response.StatusCode.ToString();
  282. }
  283. }
  284. }
  285. }
  286. }