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.
 
 
 

143 lines
5.2 KiB

using Business.Authentication;
using Business.Mobile;
using Business.SendMoney;
using Common;
using Common.Model;
using Common.Model.Config;
using JsonRx.AuthFilter;
using JsonRx.Helper;
using log4net;
using Newtonsoft.Json;
using Repository.Mobile;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Runtime.Remoting.Messaging;
using System.Web.Http;
using static Common.Model.DynamicReceiverSetup.DynamicReceiver;
namespace JsonRx.ApiV3
{
[RoutePrefix("api/v3")]
public class SendTransactionController : ApiController
{
private readonly IMobileServices _requestServices;
private readonly IAuthenticationBusiness _authenticationBusiness;
private readonly ISendMoneyBusiness _bussiness;
private static readonly ILog Log = LogManager.GetLogger(typeof(SendTransactionController));
/// <summary>
/// </summary>
public SendTransactionController() { }
/// <summary>
/// </summary>
/// <param name="requestServices"></param>
/// <param name="authenticationBusiness"></param>
public SendTransactionController(IMobileServices requestServices, IAuthenticationBusiness authenticationBusiness, ISendMoneyBusiness business)
{
_requestServices = requestServices;
_authenticationBusiness = authenticationBusiness;
_bussiness = business;
}
[HttpGet]
[TokenAuthentication]
[Route("mobile/{customer}/FetchCountriesAndServiceTypes")]
public IHttpActionResult GetCountryServiceTypeList()
{
LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid();
LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "DynamicReceiverField";
Log.Debug("GetCountryServiceTypeList details.");
IEnumerable<string> lang;
Request.Headers.TryGetValues("lang", out lang);
var l = "en";
if (lang != null)
{
var ll = lang.ToList();
if (ll.Count > 0)
{
l = ll[0] == null ? "en" : ll[0].ToString();
}
}
CallContext.SetData("lang", l);
JsonRxResponse res = _requestServices.GetCountryServiceTypeList();
return Ok(res);
}
/// <summary>
/// </summary>
/// <param name="dynamicReceiverRequest"></param>
/// <param name="customerId"></param>
/// <returns></returns>
[HttpGet]
[TokenAuthentication]
[Route("mobile/receiver/{customer}/dynamicField")]
public IHttpActionResult DynamicReceiverField(string customer, [FromUri] DynamicReceiverRequest dynamicReceiverRequest)
{
LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid();
LogicalThreadContext.Properties[LoggerProperty.CREATEDBY] = customer;
LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "DynamicReceiverField";
Log.Debug("DynamicReceiverField details.");
dynamicReceiverRequest.deviceType = Util.GetDeviceType(Request);
JsonRxResponse res = _requestServices.DynamicReceiverField(dynamicReceiverRequest, customer);
return Ok(res);
}
/// <summary>
/// </summary>
/// <param name="type"></param>
/// <returns></returns>
[HttpGet]
//[ApplicationLevelAuthentication]
[Route("mobile/{customer}/GetFieldsByProduct")]
public IHttpActionResult GetFieldsByProduct(string customer, [FromUri] MappingType type, [FromUri] string receiverId = "", [FromUri] string payoutPartner = "", [FromUri] bool IsAccountValidation = false, [FromUri] string country = "")
{
var processid = Guid.NewGuid();
LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = processid;
LogicalThreadContext.Properties[LoggerProperty.CREATEDBY] = customer;
LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "GetFieldsByProduct";
Log.Debug("GetFieldsByProduct | REQUEST : Type: " + type + " Customer: " + customer + " MappingType: " + type + " receiverId: " + receiverId + " payoutPartner: " + payoutPartner + " country: " + country);
JsonRxResponse res = new JsonRxResponse();
int mappingTypeInt;
int.TryParse(type.ToString(), out mappingTypeInt);
if (Enum.IsDefined(typeof(MappingType), type)
|| Enum.IsDefined(typeof(MappingType), mappingTypeInt))
{
res = _requestServices.GetFieldsByProduct(type, customer, receiverId, country);
if (type == Common.Model.Config.MappingType.REWARD_POINT)
{
RewardFee rewardFee = (RewardFee)res.Data;
rewardFee.ShowValidationAlert = "N";
}
}
else
{
res.ErrorCode = "1";
res.Msg = "MappingType is Invalid.";
Log.Debug("GetFieldsByProduct | RESPONSE : " + JsonConvert.SerializeObject(res));
return Ok(res);
}
return Ok(res);
}
}
}