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.

217 lines
8.4 KiB

1 year ago
1 year ago
1 year ago
1 year ago
  1. using Business.Addressy;
  2. using Business.Authentication;
  3. using Business.Mobile;
  4. using Common;
  5. using Common.Model;
  6. using Common.Model.Addressy;
  7. using Common.Model.Customer;
  8. using JsonRx.AuthFilter;
  9. using JsonRx.Helper;
  10. using log4net;
  11. using Newtonsoft.Json;
  12. using System;
  13. using System.Linq;
  14. using System.Web;
  15. using System.Web.Http;
  16. using System.Web.Http.ModelBinding;
  17. namespace JsonRx.Api
  18. {
  19. /// <summary>
  20. /// </summary>
  21. [RoutePrefix("api/v3")]
  22. public class CustomerV2Controller : ApiController
  23. {
  24. private readonly IMobileServices _requestServices;
  25. private readonly IAuthenticationBusiness _authenticationBusiness;
  26. private static readonly ILog Log = LogManager.GetLogger(typeof(CustomerV2Controller));
  27. /// <summary>
  28. /// </summary>
  29. public CustomerV2Controller() { }
  30. /// <summary>
  31. /// </summary>
  32. /// <param name="requestServices"></param>
  33. /// <param name="authenticationBusiness"></param>
  34. public CustomerV2Controller(IMobileServices requestServices, IAuthenticationBusiness authenticationBusiness)
  35. {
  36. _requestServices = requestServices;
  37. _authenticationBusiness = authenticationBusiness;
  38. }
  39. /// <summary>
  40. /// Customer Profile
  41. /// </summary>
  42. /// <returns></returns>
  43. [HttpGet]
  44. [TokenAuthentication]
  45. [Route("mobile/{customer}/receiverinfo")]
  46. public IHttpActionResult GetReceiverInformation(string customer)
  47. {
  48. LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid();
  49. LogicalThreadContext.Properties[LoggerProperty.CREATEDBY] = customer;
  50. LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "GetReceiverInformation";
  51. var customerId = customer;
  52. Log.Debug("GetCountriesServices | REQUEST : Customer: " + customer);
  53. var kycResponse = _requestServices.GetReceiverInformation(customerId);
  54. return Ok(kycResponse);
  55. }
  56. /// <summary>
  57. /// Customer Profile
  58. /// </summary>
  59. /// <returns></returns>
  60. [HttpPost]
  61. [TokenAuthentication]
  62. [Route("mobile/{customer}/receiverinfo/add")]
  63. public IHttpActionResult AddReceiver(string customer, ReceiverInfoModel receiver)
  64. {
  65. LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid();
  66. LogicalThreadContext.Properties[LoggerProperty.CREATEDBY] = customer;
  67. LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "AddReceiver";
  68. var customerId = customer;
  69. receiver.deviceType = Util.GetDeviceType(Request);
  70. Log.DebugFormat("AddReceiver | REQUEST {0} | deviceType {1} ", JsonConvert.SerializeObject(receiver), receiver.deviceType);
  71. JsonRxResponse res = new JsonRxResponse();
  72. //if (string.IsNullOrEmpty(receiver.agent.id))
  73. //{
  74. // res.SetResponse("1", "Bank Is Required !");
  75. // return Ok(res);
  76. //}
  77. //if (string.IsNullOrEmpty(receiver.firstName))
  78. //{
  79. // res.SetResponse("1", "FirstName Is Required !");
  80. // return Ok(res);
  81. //}
  82. //if (string.IsNullOrEmpty(receiver.lastName))
  83. //{
  84. // res.SetResponse("1", "LastName Is Required !");
  85. // return Ok(res);
  86. //}
  87. //if (string.IsNullOrEmpty(receiver.mobile))
  88. //{
  89. // res.SetResponse("1", "Mobile No. Is Required !");
  90. // return Ok(res);
  91. //}
  92. //if (string.IsNullOrEmpty(receiver.address))
  93. //{
  94. // res.SetResponse("1", "Address Is Required !");
  95. // return Ok(res);
  96. //}
  97. //if (string.IsNullOrEmpty(receiver.relationship))
  98. //{
  99. // res.SetResponse("1", "Relationship Is Required !");
  100. // return Ok(res);
  101. //}
  102. //if (string.IsNullOrEmpty(receiver.nativeCountry))
  103. //{
  104. // res.SetResponse("1", "NativeCountry Is Required !");
  105. // return Ok(res);
  106. //}
  107. var dbres = _requestServices.AddReceiver(customerId, receiver);
  108. Log.Debug("AddReceiver| RESPONSE " + JsonConvert.SerializeObject(dbres));
  109. return Ok(dbres);
  110. }
  111. /// <summary>
  112. /// Customer Profile
  113. /// </summary>
  114. /// <returns></returns>
  115. [HttpPost]
  116. [TokenAuthentication]
  117. [Route("mobile/{customer}/receiverinfo/modify/{receiverId}")]
  118. public IHttpActionResult ModifyReceiver(string customer, string receiverId, ReceiverInfoModel receiver)
  119. {
  120. LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid();
  121. LogicalThreadContext.Properties[LoggerProperty.CREATEDBY] = customer;
  122. LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "ModifyReceiver";
  123. var customerId = customer;
  124. receiver.deviceType = Util.GetDeviceType(Request);
  125. Log.Debug("ModifyReceiver | REQUEST : " + JsonConvert.SerializeObject(receiver));
  126. var dbres = _requestServices.ModifyReceiver(customerId, receiverId, receiver);
  127. return Ok(dbres);
  128. }
  129. /// <summary>
  130. /// Customer Profile
  131. /// </summary>
  132. /// <returns></returns>
  133. [HttpPost]
  134. [TokenAuthentication]
  135. [Route("mobile/{customer}/receiverinfo/remove/{receiverId}")]
  136. public IHttpActionResult RemoveReceiver(string customer, string receiverId)
  137. {
  138. LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid();
  139. LogicalThreadContext.Properties[LoggerProperty.CREATEDBY] = customer;
  140. LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "RemoveReceiver";
  141. Log.Debug("Trying to remove receiver");
  142. var customerId = customer;
  143. var dbres = _requestServices.RemoveReceiver(customerId, receiverId);
  144. return Ok(dbres);
  145. }
  146. [HttpGet]
  147. [ApplicationLevelAuthentication]
  148. [Route("mobile/customerInfoAgree/{customer}")]
  149. public IHttpActionResult RegisterCustomer(string customer)
  150. {
  151. var httpRequest = HttpContext.Current.Request;
  152. LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid();
  153. LogicalThreadContext.Properties[LoggerProperty.CREATEDBY] = customer;
  154. LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "customerInfoAgree";
  155. var userName = customer;
  156. Log.DebugFormat("customerInfoAgree | REQUEST {0} | Agree: {1} ", customer, httpRequest["agreeYn"]);
  157. var custRegisterResponse = _requestServices.CustomerInfoAgree(userName, httpRequest["agreeYn"]);
  158. return Ok(custRegisterResponse);
  159. }
  160. //[HttpGet]
  161. //[ApplicationLevelAuthentication]
  162. ////[Route("")]
  163. //[Route("mobile/customerInfoAgree/{customer=customer}/{agreeYn=agreeYn}")]
  164. //public IHttpActionResult RegisterCustomerIOS(string customer, string agreeYn)
  165. //{
  166. // var httpRequest = HttpContext.Current.Request;
  167. // LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid();
  168. // LogicalThreadContext.Properties[LoggerProperty.CREATEDBY] = customer;
  169. // LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "RegisterCustomer";
  170. // var userName = customer;
  171. // Log.DebugFormat("RegisterCustomerIOS.Agree | REQUEST {0} | Agree {1}: ", customer, agreeYn);
  172. // var custRegisterResponse = _requestServices.CustomerInfoAgree(userName, agreeYn);
  173. // return Ok(custRegisterResponse);
  174. //}
  175. [HttpPost]
  176. //[TokenAuthentication]
  177. [Route("mobile/AddressLookup")]
  178. public IHttpActionResult AddressLookup(QueryAddressDto dto)
  179. {
  180. LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid();
  181. LogicalThreadContext.Properties[LoggerProperty.CREATEDBY] = dto.UserId;
  182. LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "AddressLookup";
  183. Log.Debug("AddressLookup | REQUEST : " + JsonConvert.SerializeObject(dto));
  184. LocateBusiness locateBusiness = new LocateBusiness();
  185. var dbres = locateBusiness.QueryAddress(dto.PostalCode);
  186. return Ok(dbres);
  187. }
  188. }
  189. }