|
|
using JMETxnPushScheduler.API; using JMETxnPushScheduler.Common; using JMETxnPushScheduler.DAO; using Newtonsoft.Json; using Swift.API.Common.Enum; using System; using System.Collections.Generic; using System.Data;
namespace JMETxnPushScheduler.Business { public class TxnPush { TxnPushDAO _txnPush = new TxnPushDAO(); public void TxnSyncMain() {
DataTable txnData = _txnPush.GetTxnDataForApprove(); if (txnData.Rows.Count == 0 || null == txnData) { return; }
Console.WriteLine("Total data fetched for sync: " + txnData.Rows.Count.ToString()); foreach (DataRow item in txnData.Rows) { CommonResponse _dbRes = _txnPush.GetTxnApproveData("schedular", item["ID"].ToString()); if (_dbRes.ResponseCode == "0") { Console.WriteLine("Send txn started: " + item["CONTROLNO"].ToString()); string newSession = Guid.NewGuid().ToString().Replace("-", ""); var result = _txnPush.GetHoldedTxnForApprovedByAdmin("scheduler", item["ID"].ToString(), newSession);
Console.WriteLine("Send txn completed with response msg: " + result.Msg);
List<string> exclude = new List<string>() { "7000", "100" };
if (result.ResponseCode != null && result.ResponseCode != "0") { if (!exclude.Contains(result.ResponseCode) || !result.Msg.Contains("task was canceled")) _txnPush.SyncTxnAsComment(_dbRes.Msg, item["ID"].ToString(), item["CONTROLNO"].ToString(), !string.IsNullOrEmpty(result.Extra) ? result.Extra : result.ResponseCode, result.Msg); else Console.WriteLine("SyncTxnAsComment exclude Code: " + result.ResponseCode); }
if (_dbRes.Msg == "394397") { if (result.ResponseCode == "0") { _txnPush.UpdateTxnPost(item["ID"].ToString(), result.Extra); GetTxnDetails(item["ID"].ToString());
//_txnPush.UpdateTxnInstantPaid(item["ID"].ToString());
} else if (result.ResponseCode == "100")//Transaction has been processed for Bank Deposit.
{ _txnPush.UpdateTxnPost(item["ID"].ToString(), result.Extra); GetTxnDetails(item["ID"].ToString()); } else if (result.ResponseCode == "7000" && result.Msg.Contains("ALREADY USED")) { _txnPush.UpdateTxnPost(item["ID"].ToString()); // GetTxnDetails(item["ID"].ToString());
} } else if (_dbRes.Msg == "394449") //GCC
{ if (result.ResponseCode == "0") { _txnPush.UpdateTxnPost(item["ID"].ToString(), result.Extra, result.Id); GetTxnDetails(item["ID"].ToString()); } } else if (_dbRes.Msg == "394502") { if (result.ResponseCode == "0") { _txnPush.UpdateTxnPost(item["ID"].ToString(), result.Extra, result.Id); GetTxnDetails(item["ID"].ToString()); } } else { if (result.ResponseCode == "0") { _txnPush.UpdateTxnPost(item["ID"].ToString()); GetTxnDetails(item["ID"].ToString()); } }
} }
}
public void GetTxnDetails(string tranId) { TxnDetails cd = _txnPush.GetTxnDetails(tranId);
List<Mapping> bodyMappings = new List<Mapping>();
bodyMappings.Add(new Mapping() { SValue = "CustomerName", SText = cd.senderName }); bodyMappings.Add(new Mapping() { SValue = "TxnDate", SText = cd.TranDate }); bodyMappings.Add(new Mapping() { SValue = "RefNum", SText = cd.controlNo }); bodyMappings.Add(new Mapping() { SValue = "TxnDate", SText = cd.TranDate }); bodyMappings.Add(new Mapping() { SValue = "PayoutCountry", SText = cd.PayoutCountry }); bodyMappings.Add(new Mapping() { SValue = "BankName", SText = cd.BankName }); bodyMappings.Add(new Mapping() { SValue = "BankBranch", SText = cd.BankBranch }); bodyMappings.Add(new Mapping() { SValue = "AccNum", SText = cd.AccountNo }); bodyMappings.Add(new Mapping() { SValue = "BeneName", SText = cd.BeneficiaryName }); bodyMappings.Add(new Mapping() { SValue = "PayoutAmt", SText = cd.PayoutAmount }); bodyMappings.Add(new Mapping() { SValue = "TransferAmt", SText = cd.TransferAmount }); bodyMappings.Add(new Mapping() { SValue = "Fee", SText = cd.serviceCharge }); bodyMappings.Add(new Mapping() { SValue = "TotalAmt", SText = cd.TotalAmount });
if (cd.paymentMethod.ToUpper() == "BANK DEPOSIT") { SendNotificationRequestMobile request = new SendNotificationRequestMobile() { IsBulkNotification = false, UserName = cd.email, ProcessId = "BankTxnPushedToAPI", ProviderId = NotifyTemplate.BANK_TXN_POST.ToString(), NotificationTypeId = NOTIFICATION_TYPE.EMAIL.ToString(), Template = NotifyTemplate.BANK_TXN_POST, Recipients = new List<RecipientViewModel>() { new RecipientViewModel() { NotificationContent = new NotificationDTO() { Body = JsonConvert.SerializeObject(bodyMappings), //Title will be set by mapping json
}, Address= cd.email } } };
var r = NotifierV2.SendNotification(request);
Console.Write(JsonConvert.SerializeObject(r)); } else if (cd.paymentMethod.ToUpper() == "CASH PAYMENT") { SendNotificationRequestMobile request = new SendNotificationRequestMobile() { IsBulkNotification = false, UserName = cd.email, ProcessId = "CashTxnPushedToAPI", ProviderId = NotifyTemplate.CASH_TXN_POST.ToString(), NotificationTypeId = NOTIFICATION_TYPE.EMAIL.ToString(), Template = NotifyTemplate.CASH_TXN_POST, Recipients = new List<RecipientViewModel>() { new RecipientViewModel() { NotificationContent = new NotificationDTO() { Body = JsonConvert.SerializeObject(bodyMappings), //Title will be set by mapping json
}, Address= cd.email } } };
var r1 = NotifierV2.SendNotification(request);
Console.Write(JsonConvert.SerializeObject(r1)); }
}
public void TxnReleaseMain() { try { TxnPushDAO _txnPush = new TxnPushDAO(); DataTable txnData = _txnPush.GetTxnDataForRelease(); if (txnData.Rows.Count == 0 || null == txnData) { return; }
GetStatic.WriteLog("Total data fetched for Release: " + txnData.Rows.Count.ToString()); // Console.WriteLine("Total data fetched for Release: " + txnData.Rows.Count.ToString());
foreach (DataRow item in txnData.Rows) { string ProcessId = Guid.NewGuid().ToString().Replace("-", "") + ":" + item["partner"].ToString() + ":releaseTxn"; Console.WriteLine("Release txn started: " + item["CONTROLNO"].ToString()); SendTransactionServices _tpSend = new SendTransactionServices();
var request = new TFReleaseTxnRequest() { TfPin = item["CONTROLNO"].ToString(), TxnId = item["CONTROLNO2"].ToString(), RequestBy = "scheduler", UserName = "scheduler", ProviderId = item["sSuperAgent"].ToString(), ProcessId = ProcessId.Substring(ProcessId.Length - 40, 40) };
GetStatic.WriteLog(item["CONTROLNO"].ToString() + " " + Newtonsoft.Json.JsonConvert.SerializeObject(request));
var result = _tpSend.ReleaseTransaction(request);
Console.WriteLine("Release txn completed with response msg: " + result.Msg); if (result.ResponseCode == "0") { // _txnPush.UpdateTxnPost(item["ID"].ToString());
_txnPush.UpdateTxnPostRelease(item["ID"].ToString()); } else { GetStatic.WriteLog("Release txn failed with response msg: " + item["CONTROLNO"].ToString() + " " + result.Msg); }
} } catch (Exception ex) { GetStatic.WriteLog("TxnReleaseMain" + ex.ToString());
Console.WriteLine(ex.InnerException.ToString()); Console.Read(); }
}
} }
|