private void DoParse() { ListPaymentStatus = new List<PaymentStatus>(); foreach (string section in loopSection) { try { singleSection = section; statusInfo = new PaymentStatus(); statusInfo.MessageID = MessageID; SetCustomReference(); SetBankReference(); SetBankName(); statusInfo.Source = BankReportType.BANSTA; SetStatusInformation(); ListPaymentStatus.Add(statusInfo); } catch(Exception ex) { Logger.sysLog.ErrorFormat("{0} Custom Reference:{1}", ex.Message, statusInfo.RefID); } } }
public static int UpdatePaymentStatusTable(List<PaymentStatus> listPaymentStatus) { if (listPaymentStatus == null || listPaymentStatus.Count == 0) { return 0; } int count = 0; foreach (PaymentStatus status in listPaymentStatus) { try { statusInfo = status; DbDataAdapter adapter = BuildDbDataAdapter(); DataTable dt = new DataTable(); adapter.Fill(dt); UpdateDataTable(dt); count += adapter.Update(dt); } catch (Exception ex) { Logger.sysLog.ErrorFormat("Database encounters error:\r\n{0}\r\nWhen operate data:\r\n{1}", ex.Message, status.ToString()); } } return count; }
public static void StatusCodeAndDescriptionQuery(PaymentStatus statusInfo) { try { if (statusInfo == null || string.IsNullOrEmpty(statusInfo.BankStatusCode)) { throw new Exception("This EDI report is not a valid report."); } XDocument xmlDoc = XDocument.Parse(Res.BankingStatusCodeList); var rslt = ( from item in xmlDoc.Descendants(NODE_STATUS) where 1 == 1 && string.Compare(item.Attribute(ATTRIBUTE_BANK).Value, statusInfo.BankCode, true) == 0 && string.Compare(item.Attribute(ATTRIBUTE_CODE).Value, statusInfo.BankStatusCode, true) == 0 && item.Attribute(ATTRIBUTE_SOURCE).Value.ToUpper().Contains(statusInfo.Source.ToString().ToUpper()) select new { Description = item.Attribute(ATTRIBUTE_DESC).Value, StatusCode = item.Attribute(ATTRIBUTE_RESULT).Value } ).First(); statusInfo.OurStatusCode = rslt.StatusCode.SqlInjectionPrevent(); statusInfo.BankStatusDesc = rslt.Description.SqlInjectionPrevent(); } catch (Exception ex) { if (ex is InvalidOperationException) { throw new Exception(string.Format("Please contact your supplier, \r\nThere is no XML NODE for Bank:{0},Report:{1} and bank status code:{2}.", statusInfo.BankCode, statusInfo.Source, statusInfo.BankStatusCode)); } throw; } }
public static void ActionCodeDescritionQuery(PaymentStatus statusInfo) { try { if (string.IsNullOrEmpty(statusInfo.BankStatusCode)) { throw new Exception("This EDI report is not a valid report."); } XDocument xmlDoc = XDocument.Parse(Res.ActionCode); var rslt = (from item in xmlDoc.Descendants(NODE_STATUS) where item.Attribute(ATTRIBUTE_CODE).Value == statusInfo.BankStatusCode select new { Description = item.Attribute(ATTRIBUTE_DESC).Value, StatusCode = item.Attribute(ATTRIBUTE_RESULT).Value } ).First(); statusInfo.OurStatusCode = rslt.StatusCode.SqlInjectionPrevent(); statusInfo.BankStatusDesc = rslt.Description.SqlInjectionPrevent(); } catch (Exception ex) { if (ex is InvalidOperationException) { throw new Exception(string.Format("Please contact your supplier, \r\nThere is no XML NODE for Bank:{0},Report:{1} and bank status code:{2}.", statusInfo.BankCode, statusInfo.Source, statusInfo.BankStatusCode)); } throw; } }
public static void FillTransactionRejectReason(PaymentStatus status) { if (null == status || string.IsNullOrEmpty(status.BankReasonCode)) { return; } try { XDocument xdoc = XDocument.Parse(Res.TransactionRejectReason); string desc = (from elmt in xdoc.Descendants("reason") where 0 == string.Compare(elmt.Attribute("code").Value, status.BankReasonCode, true) select elmt.Attribute("desc").Value).First(); status.BankStatusDesc = desc; } catch { // } }
public void GetOurStatus(PaymentStatus status) { if (null == status || string.IsNullOrEmpty(status.BankStatusCode) || status.Level == PaymentStatusLevel.Invalid) { return; } string level = (status.Level == PaymentStatusLevel.File) ? "FILE" : "TRAN"; foreach (SwiftPaymentStatus util in _swiftPaymentStatusList) { if (0 == string.Compare(util.StatusLevel, level, true) && 0 == string.Compare(util.StatusCode, status.BankStatusCode, true)) { status.OurStatusCode = util.StatusResult; status.BankStatusDesc = util.StatusDesc; break; } } }
private void DoParse() { ListPaymentStatus = new List<PaymentStatus>(); int idx = 0; foreach (var section in loopSection) { singleSection = section; statusInfo = new PaymentStatus(); statusInfo.MessageID = MessageID; SetCustomReference(); statusInfo.BankRef = string.Empty; SetBankName(); SetLineSpan(idx); statusInfo.Source = BankReportType.PAYMUL; statusInfo.OurStatusCode = "P"; statusInfo.BankStatusCode = "P"; statusInfo.BankStatusDesc = "Payment is sending to bank gateway"; ListPaymentStatus.Add(statusInfo); idx++; } }
private static string BuildSqlScript() { sqlBuilder = new StringBuilder(); foreach (PaymentStatus statusInfo in ListStatusInfo) { status = statusInfo; if (statusInfo.Source == BankReportType.PAYMUL) { BuildInsertScript(); } else { BuildUpdateScript(); } } Regex regex = new Regex(@";\b"); string sqlStr = regex.Replace(sqlBuilder.ToString(), m => { return ";\n"; }); if (string.IsNullOrEmpty(sqlStr)) { return string.Empty; } return string.Format("BEGIN\n{0}\nEND;", sqlStr); }
private List<PaymentStatus> GetTransactionLevelPaymentStatus() { try { XDocument xdoc = XDocument.Parse(FileContent); var trans = xdoc.Descendants(PAIN002_TRAN_LEVEL_TAG).ToList(); _listPaymentStatus = new List<PaymentStatus>(); if (null != trans && 0 < trans.Count()) { trans.ForEach(transLevelDoc => { var refID = transLevelDoc.Descendants(ORIGINAL_REFID); var paymentStatus = transLevelDoc.Descendants(ORIGINAL_PAYMENT_STATUS); if (null != refID && 0 < refID.Count() && null != paymentStatus && 0 < paymentStatus.Count()) { var PaymentStatus = new PaymentStatus() { RefID = refID.First().Value, Level = PaymentStatusLevel.Transaction, BankStatusCode = paymentStatus.First().Value }; _utility.GetOurStatus(PaymentStatus); GetReasonCodeAndDesc(transLevelDoc, PaymentStatus); _listPaymentStatus.Add(PaymentStatus); } }); return _listPaymentStatus; } return null; } catch { return null; } }
private void GetReasonCodeAndDesc(XElement elmt, PaymentStatus status) { try { var rsnInf = elmt.Descendants(STATUS_REASON_INFORMATION); if (null != rsnInf && 0 < rsnInf.Count()) { var rsn = rsnInf.First().Descendants(STATUS_REASON); if (null != rsn && 0 < rsn.Count()) { var rsnCd = rsn.First().Descendants(STATUS_REASON_CODE); if (null != rsnCd && 0 < rsnCd.Count()) { status.BankReasonCode = rsnCd.First().Value; TransactionReasonCode.FillTransactionRejectReason(status); } } // var rsnDesc = rsnInf.First().Descendants(STATUS_READON_DESC).ToList(); if (null != rsnDesc && 0 < rsnDesc.Count()) { StringBuilder tmp = new StringBuilder(); rsnDesc.ForEach(rd => tmp.Append(rd.Value)); status.BankStatusDesc = tmp.ToString(); } } } catch { } }
private List<PaymentStatus> GetFileLevelPaymentStatus() { try { XDocument xdoc = XDocument.Parse(FileContent); var fileLevelDoc = xdoc.Descendants(PAIN002_FILE_LEVEL_TAG).First(); var msgID = fileLevelDoc.Descendants(ORIGINAL_MESSAGEID); var msgStatus = fileLevelDoc.Descendants(ORIGINAL_MESSAGE_STATUS); _listPaymentStatus = new List<PaymentStatus>(); if (null != msgID && 0 < msgID.Count() && null != msgStatus && 0 < msgStatus.Count()) { var PaymentStatus = new PaymentStatus() { MessageID = msgID.First().Value, Level = PaymentStatusLevel.File, BankStatusCode = msgStatus.First().Value }; _utility.GetOurStatus(PaymentStatus); GetReasonCodeAndDesc(fileLevelDoc, PaymentStatus); _listPaymentStatus.Add(PaymentStatus); return _listPaymentStatus; } return null; } catch { return null; } }
private void NegativeActionCodeSetting() { foreach (var section in loopSection) { try { singleSection = section; statusInfo = new PaymentStatus(); statusInfo.MessageID = MessageID; SetCustomReference(); SetBankReference(); SetBankName(); SetLineSpan(); statusInfo.Source = BankReportType.CONTRL; SetErrorCodeAndDescription(); ListPaymentStatus.Add(statusInfo); } catch { } } }
private void PositiveActionCodeSetting() { statusInfo = new PaymentStatus(); statusInfo.MessageID = MessageID; SetCustomReference(); SetBankReference(); SetBankName(); statusInfo.Source = BankReportType.CONTRL; statusInfo.BankStatusCode = actionCode; BankingStatusXmlQuery.ActionCodeDescritionQuery(statusInfo); ListPaymentStatus.Add(statusInfo); }