public OutgoingSingleCredit ProcessOutgoingSingleCredit(string transactionCode, string transactionDate) { if (string.IsNullOrEmpty(transactionCode)) throw new ArgumentException("Kode transaksi null/kosong"); if (string.IsNullOrEmpty(transactionDate)) throw new ArgumentException("Tanggal transaksi null/kosong"); using (var db = new RTGSGen2DBContext(connectionString)) { var outgoingSingleCreditList = db.ProcessOutgoingSingleCredit(tRN: transactionCode, date: transactionDate); var outgoingSingleCredit = new OutgoingSingleCredit(); foreach (var item in outgoingSingleCreditList) { outgoingSingleCredit.TRN = item.TRN; outgoingSingleCredit.Sequence = item.Sequence; outgoingSingleCredit.Date = item.Date; outgoingSingleCredit.Amount = item.Amount; outgoingSingleCredit.OrderingCustomerAccount = item.OrderingCustomerAccount; outgoingSingleCredit.OrderingCustomerName = item.OrderingCustomerName; outgoingSingleCredit.OrderingInstitutionAccount = item.OrderingInstitutionAccount; outgoingSingleCredit.OrderingInstitutionBank = item.OrderingInstitutionBank; outgoingSingleCredit.SenderCorrespondentAccount = item.SenderCorrespondentAccount; outgoingSingleCredit.SenderCorrespondentBank = item.SenderCorrespondentBank; outgoingSingleCredit.BeneficiaryInstitutionAccount = item.BeneficiaryInstitutionAccount; outgoingSingleCredit.BeneficiaryInstitutionBank = item.BeneficiaryInstitutionBank; outgoingSingleCredit.BeneficiaryCustomerAccount = item.BeneficiaryCustomerAccount; outgoingSingleCredit.BeneficiaryCustomerName = item.BeneficiaryCustomerName; outgoingSingleCredit.Details = item.Details; outgoingSingleCredit.Inputter = item.Inputter; outgoingSingleCredit.CompanyCode = item.CompanyCode; outgoingSingleCredit.Status = item.Status; } return outgoingSingleCredit; } }
public string ConvertToRTGSTextFileFormat(OutgoingSingleCredit outgoingSingleCredit) { StringBuilder sb = new StringBuilder(); sb.Append("{1:F01RIPAIDJ1R0090002" + outgoingSingleCredit.Sequence.AddLeadingZero(6) + "}"); sb.Append("{2:I103INDOIDJRXXXXN}"); sb.Append("{3:{113:0070}}"); sb.Append("{4:"); sb.AppendLine(":20:" + outgoingSingleCredit.TRN); sb.AppendLine(":23B:CRED"); sb.AppendLine(":23E:SDVA"); sb.AppendLine(":26T:100"); sb.AppendLine(":32A:" + outgoingSingleCredit.Date + outgoingSingleCredit.Amount); sb.AppendLine(":50K:/" + outgoingSingleCredit.OrderingCustomerAccount); sb.AppendLine(outgoingSingleCredit.OrderingCustomerName); sb.AppendLine(":52A:/" + outgoingSingleCredit.OrderingInstitutionAccount); sb.AppendLine(outgoingSingleCredit.OrderingInstitutionBank); sb.AppendLine(":53A:/" + outgoingSingleCredit.SenderCorrespondentAccount); sb.AppendLine(outgoingSingleCredit.SenderCorrespondentBank); sb.AppendLine(":57A:/" + outgoingSingleCredit.BeneficiaryInstitutionAccount); sb.AppendLine(outgoingSingleCredit.BeneficiaryInstitutionBank); sb.AppendLine(":59:/" + outgoingSingleCredit.BeneficiaryCustomerAccount); sb.AppendLine(outgoingSingleCredit.BeneficiaryCustomerName); sb.AppendLine(":70:" + outgoingSingleCredit.Details); sb.AppendLine(":71A:OUR"); sb.AppendLine(":72:/CODTYPTR/100"); sb.AppendLine(":77B:/FEAB/R"); sb.AppendLine("/PTR/LOCAL-LOCAL"); sb.Append("-}"); return sb.ToString(); }
public void ConvertToRTGSTextFileFormatTestDataValid() { var outgoingSingleCreditController = new OutgoingSingleCreditController(connectionString); var outgoingSingleCreditHistory = new OutgoingSingleCredit() { TRN = "AL-004", Sequence = 136, Date = "151019", Amount = "IDR150000000,00", OrderingCustomerAccount = "1000063463456", OrderingCustomerName = "PUTU SURYA SUDARMADI", OrderingInstitutionAccount = "523466000990", OrderingInstitutionBank = "RIPAIDJ1", SenderCorrespondentAccount = "523466000990", SenderCorrespondentBank = "RIPAIDJ1", BeneficiaryInstitutionAccount = "520002000990", BeneficiaryInstitutionBank = "BRINIDJA", BeneficiaryCustomerAccount = "156789000002", BeneficiaryCustomerName = "RUDY ARTHA", Details = "SIT RTGS Gen II" }; var sb = new StringBuilder(); sb.Append("{1:F01RIPAIDJ1R0090002000136}"); sb.Append("{2:I103INDOIDJRXXXXN}"); sb.Append("{3:{113:0070}}"); sb.Append("{4:"); sb.AppendLine(":20:AL-004"); sb.AppendLine(":23B:CRED"); sb.AppendLine(":23E:SDVA"); sb.AppendLine(":26T:100"); sb.AppendLine(":32A:151019IDR150000000,00"); sb.AppendLine(":50K:/1000063463456"); sb.AppendLine("PUTU SURYA SUDARMADI"); sb.AppendLine(":52A:/523466000990"); sb.AppendLine("RIPAIDJ1"); sb.AppendLine(":53A:/523466000990"); sb.AppendLine("RIPAIDJ1"); sb.AppendLine(":57A:/520002000990"); sb.AppendLine("BRINIDJA"); sb.AppendLine(":59:/156789000002"); sb.AppendLine("RUDY ARTHA"); sb.AppendLine(":70:SIT RTGS Gen II"); sb.AppendLine(":71A:OUR"); sb.AppendLine(":72:/CODTYPTR/100"); sb.AppendLine(":77B:/FEAB/R"); sb.AppendLine("/PTR/LOCAL-LOCAL"); sb.Append("-}"); var expected = sb.ToString(); var actual = outgoingSingleCreditController.ConvertToRTGSTextFileFormat(outgoingSingleCreditHistory); Assert.AreEqual(expected, actual); }
public void GenerateTextFileTestValid() { var outgoingSingleCreditController = new OutgoingSingleCreditController(connectionString); var outgoingSingleCredit = new OutgoingSingleCredit() { TRN = "AL-004", Sequence = 136, Date = "151019", Amount = "IDR150000000,00", OrderingCustomerAccount = "1000063463456", OrderingCustomerName = "PUTU SURYA SUDARMADI", OrderingInstitutionAccount = "523466000990", OrderingInstitutionBank = "RIPAIDJ1", SenderCorrespondentAccount = "523466000990", SenderCorrespondentBank = "RIPAIDJ1", BeneficiaryInstitutionAccount = "520002000990", BeneficiaryInstitutionBank = "BRINIDJA", BeneficiaryCustomerAccount = "156789000002", BeneficiaryCustomerName = "RUDY ARTHA", Details = "SIT RTGS Gen II" }; var transactionData = outgoingSingleCreditController.ConvertToRTGSTextFileFormat(outgoingSingleCredit); var ftpServerRtgs = "ftp://10.1.10.24/"; var ftpUser = "******"; var ftpPassword = "******"; var fileName = outgoingSingleCredit.TRN + ".txt"; var actual = outgoingSingleCreditController.GenerateTextFile(transactionData: transactionData, ftpServerRtgs: ftpServerRtgs, ftpUser: ftpUser, ftpPassword: ftpPassword, fileName: fileName); Assert.AreEqual(0, actual.MessageList.Count()); using (WebClient client = new WebClient()) { client.Credentials = new NetworkCredential(ftpUser, ftpPassword); var fileExists = client.DownloadString(ftpServerRtgs + "/" + fileName); Assert.IsNotNull(fileExists); } }
private void GenerateTextFile(OutgoingSingleCredit outgoingSingleCredit) { ProcessGenerateTextFile(outgoingSingleCredit); }
private void ProcessGenerateTextFile(OutgoingSingleCredit outgoingSingleCredit) { var outgoingSingleCreditController = new OutgoingSingleCreditController(config.T24ConnectionString()); var transactionData = outgoingSingleCreditController.ConvertToRTGSTextFileFormat(outgoingSingleCredit); var fileName = outgoingSingleCredit.TRN + ".txt"; var result = outgoingSingleCreditController.GenerateTextFile(transactionData: transactionData, ftpServerRtgs: config.FtpServerRTGS, ftpUser: config.FtpUser, ftpPassword: config.FtpPassword, fileName: fileName); if (result.Success) { UpdateGeneratedTransactionStatus(outgoingSingleCreditController, outgoingSingleCredit.TRN, result); } else { log.WriteErrorLog("Generate text file failed.", result); } }