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; } } } }