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.
211 lines
9.1 KiB
211 lines
9.1 KiB
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());
|
|
}
|
|
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 (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(),
|
|
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());
|
|
}
|
|
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();
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
}
|