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.
 
 
 

218 lines
8.4 KiB

using Business.Addressy;
using Business.Authentication;
using Business.Mobile;
using Common;
using Common.Model;
using Common.Model.Addressy;
using Common.Model.Customer;
using JsonRx.AuthFilter;
using JsonRx.Helper;
using log4net;
using Newtonsoft.Json;
using System;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Http.ModelBinding;
namespace JsonRx.Api
{
/// <summary>
/// </summary>
[RoutePrefix("api/v3")]
public class CustomerV2Controller : ApiController
{
private readonly IMobileServices _requestServices;
private readonly IAuthenticationBusiness _authenticationBusiness;
private static readonly ILog Log = LogManager.GetLogger(typeof(CustomerV2Controller));
/// <summary>
/// </summary>
public CustomerV2Controller() { }
/// <summary>
/// </summary>
/// <param name="requestServices"></param>
/// <param name="authenticationBusiness"></param>
public CustomerV2Controller(IMobileServices requestServices, IAuthenticationBusiness authenticationBusiness)
{
_requestServices = requestServices;
_authenticationBusiness = authenticationBusiness;
}
/// <summary>
/// Customer Profile
/// </summary>
/// <returns></returns>
[HttpGet]
[TokenAuthentication]
[Route("mobile/{customer}/receiverinfo")]
public IHttpActionResult GetReceiverInformation(string customer)
{
LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid();
LogicalThreadContext.Properties[LoggerProperty.CREATEDBY] = customer;
LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "GetReceiverInformation";
var customerId = customer;
Log.Debug("GetCountriesServices | REQUEST : Customer: " + customer);
var kycResponse = _requestServices.GetReceiverInformation(customerId);
return Ok(kycResponse);
}
/// <summary>
/// Customer Profile
/// </summary>
/// <returns></returns>
[HttpPost]
[TokenAuthentication]
[Route("mobile/{customer}/receiverinfo/add")]
public IHttpActionResult AddReceiver(string customer, ReceiverInfoModel receiver)
{
LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid();
LogicalThreadContext.Properties[LoggerProperty.CREATEDBY] = customer;
LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "AddReceiver";
var customerId = customer;
receiver.deviceType = Util.GetDeviceType(Request);
Log.DebugFormat("AddReceiver | REQUEST {0} | deviceType {1} ", JsonConvert.SerializeObject(receiver), receiver.deviceType);
JsonRxResponse res = new JsonRxResponse();
//if (string.IsNullOrEmpty(receiver.agent.id))
//{
// res.SetResponse("1", "Bank Is Required !");
// return Ok(res);
//}
//if (string.IsNullOrEmpty(receiver.firstName))
//{
// res.SetResponse("1", "FirstName Is Required !");
// return Ok(res);
//}
//if (string.IsNullOrEmpty(receiver.lastName))
//{
// res.SetResponse("1", "LastName Is Required !");
// return Ok(res);
//}
//if (string.IsNullOrEmpty(receiver.mobile))
//{
// res.SetResponse("1", "Mobile No. Is Required !");
// return Ok(res);
//}
//if (string.IsNullOrEmpty(receiver.address))
//{
// res.SetResponse("1", "Address Is Required !");
// return Ok(res);
//}
//if (string.IsNullOrEmpty(receiver.relationship))
//{
// res.SetResponse("1", "Relationship Is Required !");
// return Ok(res);
//}
//if (string.IsNullOrEmpty(receiver.nativeCountry))
//{
// res.SetResponse("1", "NativeCountry Is Required !");
// return Ok(res);
//}
var dbres = _requestServices.AddReceiver(customerId, receiver);
Log.Debug("AddReceiver| RESPONSE " + JsonConvert.SerializeObject(dbres));
return Ok(dbres);
}
/// <summary>
/// Customer Profile
/// </summary>
/// <returns></returns>
[HttpPost]
[TokenAuthentication]
[Route("mobile/{customer}/receiverinfo/modify/{receiverId}")]
public IHttpActionResult ModifyReceiver(string customer, string receiverId, ReceiverInfoModel receiver)
{
LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid();
LogicalThreadContext.Properties[LoggerProperty.CREATEDBY] = customer;
LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "ModifyReceiver";
var customerId = customer;
receiver.deviceType = Util.GetDeviceType(Request);
Log.Debug("ModifyReceiver | REQUEST : " + JsonConvert.SerializeObject(receiver));
var dbres = _requestServices.ModifyReceiver(customerId, receiverId, receiver);
return Ok(dbres);
}
/// <summary>
/// Customer Profile
/// </summary>
/// <returns></returns>
[HttpPost]
[TokenAuthentication]
[Route("mobile/{customer}/receiverinfo/remove/{receiverId}")]
public IHttpActionResult RemoveReceiver(string customer, string receiverId)
{
LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid();
LogicalThreadContext.Properties[LoggerProperty.CREATEDBY] = customer;
LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "RemoveReceiver";
Log.Debug("Trying to remove receiver");
var customerId = customer;
var dbres = _requestServices.RemoveReceiver(customerId, receiverId);
return Ok(dbres);
}
[HttpGet]
[ApplicationLevelAuthentication]
[Route("mobile/customerInfoAgree/{customer}")]
public IHttpActionResult RegisterCustomer(string customer)
{
var httpRequest = HttpContext.Current.Request;
LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid();
LogicalThreadContext.Properties[LoggerProperty.CREATEDBY] = customer;
LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "customerInfoAgree";
var userName = customer;
Log.DebugFormat("customerInfoAgree | REQUEST {0} | Agree: {1} ", customer, httpRequest["agreeYn"]);
var custRegisterResponse = _requestServices.CustomerInfoAgree(userName, httpRequest["agreeYn"]);
return Ok(custRegisterResponse);
}
//[HttpGet]
//[ApplicationLevelAuthentication]
////[Route("")]
//[Route("mobile/customerInfoAgree/{customer=customer}/{agreeYn=agreeYn}")]
//public IHttpActionResult RegisterCustomerIOS(string customer, string agreeYn)
//{
// var httpRequest = HttpContext.Current.Request;
// LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid();
// LogicalThreadContext.Properties[LoggerProperty.CREATEDBY] = customer;
// LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "RegisterCustomer";
// var userName = customer;
// Log.DebugFormat("RegisterCustomerIOS.Agree | REQUEST {0} | Agree {1}: ", customer, agreeYn);
// var custRegisterResponse = _requestServices.CustomerInfoAgree(userName, agreeYn);
// return Ok(custRegisterResponse);
//}
[HttpPost]
//[TokenAuthentication]
[Route("mobile/AddressLookup")]
public IHttpActionResult AddressLookup(QueryAddressDto dto)
{
LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid();
LogicalThreadContext.Properties[LoggerProperty.CREATEDBY] = dto.UserId;
LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "AddressLookup";
Log.Debug("AddressLookup | REQUEST : " + JsonConvert.SerializeObject(dto));
LocateBusiness locateBusiness = new LocateBusiness();
var dbres = locateBusiness.QueryAddress(dto.PostalCode);
return Ok(dbres);
}
}
}