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.
 
 
 

103 lines
4.2 KiB

using Common;
using Common.Helper;
using Common.Model.BalanceTransfer;
using log4net;
using Newtonsoft.Json;
using Repository.BalanceTransfer;
using System;
namespace Business.BalanceTransfer
{
public class BalanceTransferBusiness : IBalanceTransferBusiness
{
private readonly IBalanceTransferRepository _repo;
private static readonly ILog Log = LogManager.GetLogger(typeof(BalanceTransferBusiness));
public BalanceTransferBusiness(IBalanceTransferRepository repo)
{
_repo = repo;
}
public JsonRxResponse InitBalanceTransfer(InitBalanceTransfer initBalanceTransfer)
{
JsonRxResponse _jsonResp = new JsonRxResponse();
string plainText = "";
string encQRCodeData = "";
try
{
Log.DebugFormat("InitBalanceTransfer | Calling InitBalanceTransfer method.");
_jsonResp = _repo.InitBalanceTransfer(initBalanceTransfer);
if (_jsonResp.ErrorCode == "0")
{
Log.Debug("InitBalanceTransfer | Calling InitBalanceTransfer Success...");
plainText = initBalanceTransfer.userId + ":" + initBalanceTransfer.amount + ":" + Utilities.GetTimestamp(DateTime.Now) + ":" + _jsonResp.Id;
encQRCodeData = Utilities.EncryptString(plainText);
_jsonResp.Data = new
{
checksum = "",
reqData = encQRCodeData
};
return _jsonResp;
}
Log.Debug("InitBalanceTransfer | Calling InitBalanceTransfer Error with: "+JsonConvert.SerializeObject(_jsonResp));
return _jsonResp;
}
catch (Exception ex)
{
Log.Error("Something Went Wrong, Please Try Again!!", ex);
_jsonResp.SetResponse("1", "Could not complete the request.");
return _jsonResp;
}
}
public JsonRxResponse ConfirmBalanceTransfer(ConfirmBalanceTransfer confirmBalanceTransfer)
{
JsonRxResponse _jsonResp = new JsonRxResponse();
try
{
Log.DebugFormat("ConfirmBalanceTransfer | Calling ConfirmBalanceTransfer method.");
string[] plainText = Utilities.DecryptString(confirmBalanceTransfer.reqData).Split(':');
if (plainText.Length != 4)
{
Log.Debug("ConfirmBalanceTransfer | Invalid reqData: " + confirmBalanceTransfer.reqData);
return new JsonRxResponse { ErrorCode = "1", Msg = "Invalid request" };
}
confirmBalanceTransfer.requestUserId = plainText[0];
confirmBalanceTransfer.requestAmount = plainText[1];
confirmBalanceTransfer.requestId = plainText[3];
_jsonResp = _repo.ConfirmBalanceTransfer(confirmBalanceTransfer);
Log.Debug("ConfirmBalanceTransfer | Completed with response: " + JsonConvert.SerializeObject(_jsonResp));
return _jsonResp;
}
catch (Exception ex)
{
Log.Error("Something Went Wrong, Please Try Again!!", ex);
_jsonResp.SetResponse("1", "Could not complete the request.");
return _jsonResp;
}
}
public JsonRxResponse PerformBalanceTransfer(PerformBalanceTransfer performBalanceTransfer)
{
JsonRxResponse _jsonResp = new JsonRxResponse();
try
{
Log.DebugFormat("PerformBalanceTransfer | Calling PerformBalanceTransfer method.");
_jsonResp = _repo.PerformBalanceTransfer(performBalanceTransfer);
Log.Debug("PerformBalanceTransfer | Completed with response: " + JsonConvert.SerializeObject(_jsonResp));
return _jsonResp;
}
catch (Exception ex)
{
Log.Error("Something Went Wrong, Please Try Again!!", ex);
_jsonResp.SetResponse("1", "Could not complete the request.");
return _jsonResp;
}
}
}
}