private static List <Reconciliation> ReadContents(ReconciliationFile rec) { var reconciliations = new List <Reconciliation>(); using (var stream = new StreamReader(new MemoryStream(rec.Contents), Encoding.Default)) { var str = stream.ReadLine(); while (str != null) { var flag = str.AsRecordType(); if (flag.ToUpper().Equals("D")) //Detail { var recDto = new Reconciliation { ReconciliationFileId = rec.Id, PaymentMethod = rec.FileType, PaymentCode = str.AsCustomerNoRef1(), PaymentDate = str.AsPaymentDateTime(), PaymentBy = str.AsCustomerName(), Amount = str.AsAmount() }; reconciliations.Add(recDto); } str = stream.ReadLine(); } } return(reconciliations); }
public void TestCreateReconciliation() { using (var context = new TransactionModelContainer()) { ReconciliationFile reconcil = new ReconciliationFile("test", new byte[] { 1, 2 }, DateTime.Now, "system", null, true, null, false); context.ReconciliationFiles.AddObject(reconcil); context.SaveChanges(); } }
private void ReadStream(ReconciliationFile rec) { var reconciliations = ReadContents(rec); if (reconciliations.Count > 0) { SaveReconcilation(reconciliations.ToArray()); ReconciliationFile.UpdateSuccessReconciliationFile(rec.Id); } }
public void Reader(ReconciliationFile rec) { if (rec.FileType == FileType.C.ToString()) { CreditCard(rec); } else if (rec.FileType == FileType.P.ToString()) { PayInSlip(rec); } }
private void CreditCard(ReconciliationFile rec) { var content = new StreamReader(new MemoryStream(rec.Contents)); DataSet ds = TextToDataSet.Convert(content); var recons = MapperReconciliation.CreateCreditCardToBBL(ds.Tables[0], rec.FileType, rec.Id); SaveReconcilation(recons); ReconciliationFile.UpdateSuccessReconciliationFile(rec.Id); }
private void UpdateFailReconciliationFile(ReconciliationFile rec) { var sourceFile = rec.BackupPath; var destinationFile = sourceFile.Replace("Success", "Err"); var parentPath = new DirectoryInfo(destinationFile).Parent.FullName; CreateDirectory(parentPath); File.Move(sourceFile, destinationFile); rec.BackupPath = destinationFile; ReconciliationFile.UpdateFailReconciliationFile(rec); }
public void ReadReconciliation() { var reconciliations = ReconciliationFile.GetReconciliationFile(); foreach (var rec in reconciliations) { try { BankType(rec); } catch (Exception ex) { CreateLog(ex); } } }
private void BankType(ReconciliationFile rec) { var bankName = GetBank(rec.BackupPath); if (bankName == TransactionBanks.BBL.ToString()) { var bbl = new BBLProcessor(); bbl.Reader(rec); } else if (bankName == TransactionBanks.KBANK.ToString()) { var kbank = new KBankProcessor(); kbank.Reader(rec); } else if (bankName == TransactionBanks.SCB.ToString()) { var scb = new SCBProcessor(); scb.Reader(rec); } }
private void ReadContents(ReconciliationFile rec) { try { List <Reconciliation> reconciliations = new List <Reconciliation>(); string sourceFileName = rec.BackupPath; using (var stream = new StreamReader(new MemoryStream(rec.Contents), Encoding.Default)) { string str = stream.ReadLine(); while (str != null) { str = str.Substring(19); string flag = str.Substring(0, 1).ToUpper(); if (flag == "D") { //Line Item var value = MapperReconciliation.CreatePayInSlip(str, rec.Id); reconciliations.Add(value); } str = stream.ReadLine(); } if (reconciliations.Count() <= 0) { string msg = string.Format("Invalid PayInSlip Pattern - Id:{0} FullPath:{1}", rec.Id, rec.BackupPath); throw new Exception(msg); } SaveReconcilation(reconciliations.ToArray()); ReconciliationFile.UpdateSuccessReconciliationFile(rec.Id); } } catch (Exception ex) { throw ex; } }
private void PayInSlip(ReconciliationFile rec) { ReadStream(rec); }
private void CreditCard(ReconciliationFile rec) { throw new NotImplementedException("KBANK_CAN_NOT_PAY_CREDIT_CARD"); }
private void PayInSlip(ReconciliationFile rec) { ReadContents(rec); }