From f98eb49398702816dcda1c459f9852a3a48faac6 Mon Sep 17 00:00:00 2001 From: Leeza Baidar Date: Fri, 15 Dec 2023 17:10:17 +0545 Subject: [PATCH 1/2] #paid txn push Notification --- SendMail/Business/TxnPush.cs | 26 ++++++++++++++++++++++++++ SendMail/Common/Notification.cs | 3 +++ SendMail/Common/TxnDetails.cs | 1 + SendMail/DAO/TxnPushDAO.cs | 1 + 4 files changed, 31 insertions(+) diff --git a/SendMail/Business/TxnPush.cs b/SendMail/Business/TxnPush.cs index 21de60d..bf4622d 100644 --- a/SendMail/Business/TxnPush.cs +++ b/SendMail/Business/TxnPush.cs @@ -150,6 +150,32 @@ namespace JMETxnPushScheduler.Business Console.Write(JsonConvert.SerializeObject(r1)); } + if(cd.payStatus.ToUpper() == "PAID") + { + SendNotificationRequestMobile request = new SendNotificationRequestMobile() + { + IsBulkNotification = false, + UserName = cd.email, + ProcessId = "PaidTxnPushNotification", + ProviderId = NotifyTemplate.PAID_TXN.ToString(), + NotificationTypeId = NOTIFICATION_TYPE.PUSH_NOTIFICATION.ToString(), + Template = NotifyTemplate.PAID_TXN, + Recipients = new List() + { + 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)); + } } diff --git a/SendMail/Common/Notification.cs b/SendMail/Common/Notification.cs index 74314f2..cd97d99 100644 --- a/SendMail/Common/Notification.cs +++ b/SendMail/Common/Notification.cs @@ -25,5 +25,8 @@ namespace JMETxnPushScheduler.Common [Description("Email to customer after txn has been accepted by Pay-out partner (Cash Collection)")] CASH_TXN_POST = 4, + [Description("Push notification to the customer afte the txn is paid")] + PAID_TXN = 4 + } } diff --git a/SendMail/Common/TxnDetails.cs b/SendMail/Common/TxnDetails.cs index 10f06db..c8f79b7 100644 --- a/SendMail/Common/TxnDetails.cs +++ b/SendMail/Common/TxnDetails.cs @@ -22,5 +22,6 @@ namespace JMETxnPushScheduler.Common public string TotalAmount { get; set; } public string paymentMethod { get; set; } public string email { get; set; } + public string payStatus { get; set; } } } diff --git a/SendMail/DAO/TxnPushDAO.cs b/SendMail/DAO/TxnPushDAO.cs index 1414eba..8f49782 100644 --- a/SendMail/DAO/TxnPushDAO.cs +++ b/SendMail/DAO/TxnPushDAO.cs @@ -70,6 +70,7 @@ namespace JMETxnPushScheduler.DAO userDetails.serviceCharge = row["serviceCharge"].ToString(); // userDetails.rewardPoints = row["rewardPoints"].ToString(); userDetails.TranDate = row["createdDate"].ToString(); + userDetails.payStatus = row["payStatus"].ToString(); } return userDetails; From 8987982253dd144ee2f0cfde3bf88a3e3fa00b14 Mon Sep 17 00:00:00 2001 From: shakun Date: Mon, 18 Dec 2023 22:42:08 +0545 Subject: [PATCH 2/2] synnc --- SendMail/API/NotifierV2.cs | 63 ++++++++++++++++++++++++++++++++++ SendMail/Business/TxnPush.cs | 66 ++++++++++-------------------------- SendMail/DAO/TxnPushDAO.cs | 30 +++++++++++++--- 3 files changed, 106 insertions(+), 53 deletions(-) create mode 100644 SendMail/API/NotifierV2.cs diff --git a/SendMail/API/NotifierV2.cs b/SendMail/API/NotifierV2.cs new file mode 100644 index 0000000..eae4175 --- /dev/null +++ b/SendMail/API/NotifierV2.cs @@ -0,0 +1,63 @@ +using JMETxnPushScheduler.Common; +using Newtonsoft.Json; +using Swift.API.Common.Enum; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http; +using System.Text; +using System.Threading.Tasks; + +namespace JMETxnPushScheduler.API +{ + public static class NotifierV2 + { + // private static readonly ILog Log = LogManager.GetLogger(typeof(NotifierV2)); + public static JsonResponse SendNotification(SendNotificationRequestMobile request, NOTIFICATION_TYPE nOTIFICATION_TYPE = NOTIFICATION_TYPE.PUSH_NOTIFICATION) + { + using (var client = RestApiClient.CallJMEThirdParty()) + { + JsonResponse jsonResponse = new JsonResponse(); + var obj = JsonConvert.SerializeObject(request); + var jbdContent = new StringContent(obj.ToString(), Encoding.UTF8, "application/json"); + try + { + var URL = "api/v1/TP/NotificationAPI"; + + HttpResponseMessage resp = client.PostAsync(URL, jbdContent).Result; + string resultData = resp.Content.ReadAsStringAsync().Result; + if (resp.IsSuccessStatusCode) + { + jsonResponse = JsonConvert.DeserializeObject(resultData); + var a = (jsonResponse.Data != null ? JsonConvert.DeserializeObject(jsonResponse.Data.ToString()) : null); + jsonResponse.Data = a; + + return jsonResponse; + } + else + { + var errorJson = JsonConvert.DeserializeObject(resultData); + var jsonResponseData = JsonConvert.DeserializeObject(errorJson.Message); + var data = JsonConvert.DeserializeObject>(jsonResponseData.Data.ToString()); + jsonResponse.Id = jsonResponseData.Id; + jsonResponse.ResponseCode = jsonResponseData.ResponseCode; + jsonResponse.Msg = jsonResponseData.Msg; + jsonResponse.Data = data; + jsonResponse.Extra = jsonResponseData.Extra; + jsonResponse.Extra1 = jsonResponseData.Extra1; + return jsonResponse; + } + } + catch (Exception ex) + { + return new JsonResponse() + { + ResponseCode = "1", + Msg = (ex.InnerException == null ? ex.Message : ex.InnerException.Message) + }; + } + } + } + + } +} diff --git a/SendMail/Business/TxnPush.cs b/SendMail/Business/TxnPush.cs index e286042..2e9bd7d 100644 --- a/SendMail/Business/TxnPush.cs +++ b/SendMail/Business/TxnPush.cs @@ -14,7 +14,7 @@ namespace JMETxnPushScheduler.Business TxnPushDAO _txnPush = new TxnPushDAO(); public void TxnSyncMain() { - + DataTable txnData = _txnPush.GetTxnDataForApprove(); if (txnData.Rows.Count == 0 || null == txnData) { @@ -47,60 +47,20 @@ namespace JMETxnPushScheduler.Business { 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()); + _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 == "394132") - { - if (result.ResponseCode == "0" || (!string.IsNullOrEmpty(result.Extra) && result.Extra.Equals("0006"))) //Duplicate records - { - _txnPush.UpdateTxnPost(item["ID"].ToString()); - GetTxnDetails(item["ID"].ToString()); - } - } - else if (_dbRes.Msg == "394414") //brac - { - if (result.ResponseCode == "0" || (!string.IsNullOrEmpty(result.Msg) && result.Msg.Equals("DuplicateTTNumber"))) //004- Duplicate records - { - _txnPush.UpdateTxnPost(item["ID"].ToString()); - GetTxnDetails(item["ID"].ToString()); - } - } - else if (_dbRes.Msg == "394428") //Cebuana - { - if (result.ResponseCode == "0" || (!string.IsNullOrEmpty(result.Extra) && result.Extra.Equals("05"))) // Control Number Already In Use - { - _txnPush.UpdateTxnPost(item["ID"].ToString()); - GetTxnDetails(item["ID"].ToString()); - } - else if (!string.IsNullOrEmpty(result.Extra) && result.Extra.Equals("19")) //"RTA Internal Error-Reference Number Already Exists - { - _txnPush.UpdateTxnPost(item["ID"].ToString()); - GetTxnDetails(item["ID"].ToString()); - - } - } - else if (_dbRes.Msg == "394434") //wings - { - if (result.ResponseCode == "0") - { - _txnPush.UpdateTxnPost(item["ID"].ToString()); - GetTxnDetails(item["ID"].ToString()); - } - else if (!string.IsNullOrEmpty(result.Extra) && result.Extra.Equals("200")) //" Txn found in wings system. - { - _txnPush.UpdateTxnPost(item["ID"].ToString()); - GetTxnDetails(item["ID"].ToString()); + // GetTxnDetails(item["ID"].ToString()); } } else @@ -137,7 +97,7 @@ namespace JMETxnPushScheduler.Business bodyMappings.Add(new Mapping() { SValue = "Fee", SText = cd.serviceCharge }); bodyMappings.Add(new Mapping() { SValue = "TotalAmt", SText = cd.TotalAmount }); - if(cd.paymentMethod.ToUpper() == "BANK DEPOSIT") + if (cd.paymentMethod.ToUpper() == "BANK DEPOSIT") { SendNotificationRequestMobile request = new SendNotificationRequestMobile() { @@ -159,8 +119,12 @@ namespace JMETxnPushScheduler.Business } } }; + + var r = NotifierV2.SendNotification(request); + + Console.Write(JsonConvert.SerializeObject(r)); } - else if(cd.paymentMethod.ToUpper() == "CASH PAYMENT") + else if (cd.paymentMethod.ToUpper() == "CASH PAYMENT") { SendNotificationRequestMobile request = new SendNotificationRequestMobile() { @@ -182,8 +146,12 @@ namespace JMETxnPushScheduler.Business } } }; + + var r1 = NotifierV2.SendNotification(request); + + Console.Write(JsonConvert.SerializeObject(r1)); } - + } diff --git a/SendMail/DAO/TxnPushDAO.cs b/SendMail/DAO/TxnPushDAO.cs index 327c2bc..1414eba 100644 --- a/SendMail/DAO/TxnPushDAO.cs +++ b/SendMail/DAO/TxnPushDAO.cs @@ -20,11 +20,12 @@ namespace JMETxnPushScheduler.DAO return ExecuteDataTable(sql); } - public void UpdateTxnPost(string id) + public void UpdateTxnPost(string id, string pCurrCostRate = null ) { string sql = "EXEC PROC_TP_TXN_PUSH @FLAG = 'UPDATE-POST'"; sql += ", @TRAN_ID = " + FilterString(id); - + sql += ", @pCurrCostRate = " + FilterString(pCurrCostRate); + ExecuteDataTable(sql); } @@ -47,10 +48,31 @@ namespace JMETxnPushScheduler.DAO public TxnDetails GetTxnDetails(string tranId) { - string sql = "EXEC GetUserInfo @FLAG = 'txn-details'"; + var sql = "EXEC GetUserInfo @flag='txn-details' "; sql += ", @tranId = " + FilterString(tranId); + var row = ExecuteDataRow(sql); + + TxnDetails userDetails = new TxnDetails(); + if (row != null) + { + userDetails.senderName = row["senderName"].ToString(); + userDetails.PayoutCountry = row["pcountry"].ToString(); + userDetails.controlNo = row["controlNo"].ToString(); + userDetails.BeneficiaryName = row["receiverName"].ToString(); + userDetails.paymentMethod = row["paymentMethod"].ToString(); + userDetails.BankName = row["pBankName"].ToString(); + userDetails.BankBranch = row["pBankBranchName"].ToString(); + userDetails.email = row["email"].ToString(); + userDetails.AccountNo = row["accountNo"].ToString(); + userDetails.PayoutAmount = row["pAmt"].ToString(); + userDetails.TransferAmount = row["tamt"].ToString(); + userDetails.TotalAmount = row["camt"].ToString(); + userDetails.serviceCharge = row["serviceCharge"].ToString(); + // userDetails.rewardPoints = row["rewardPoints"].ToString(); + userDetails.TranDate = row["createdDate"].ToString(); + } - return ParseDbResult(sql); + return userDetails; } private T ParseDbResult(string sql)