public void FullParsersTest() { var fr = CultureInfo.GetCultureInfo("fr-FR"); var data = Data; var result = Mt940Parser.ParseData(new AbnAmro(), data, NlCultureInfo); Assert.AreEqual(4, result.Count); var message = result.First(); Assert.AreEqual("500950253", message.Account); Assert.AreEqual(2, message.Transactions.Count); var messageFirst = message.Transactions.First(); Assert.AreEqual(DebitCredit.Debit, messageFirst.DebitCredit); Assert.AreEqual(@"GIRO 428428 KPN BV BETALINGSKENM. 000000018503995 5109227317 BETREFT TestUUR D.D. 20-06-2009 INCL. 1,20 BTW", messageFirst.Description); Assert.AreEqual(new DateTime(2009, 06, 23), messageFirst.ValueDate); Assert.AreEqual(new DateTime(2009, 06, 24), messageFirst.EntryDate); Assert.AreEqual(DebitCredit.Debit, messageFirst.DebitCredit); Assert.AreEqual(new Money("7,5", new Currency("EUR"), fr), messageFirst.Amount); Assert.AreEqual("NONREF", messageFirst.Reference); Assert.AreEqual("N192", messageFirst.TransactionType); }
private ICollection <CustomerStatementMessage> GetSample(IMt940Format format, string resourceName, CultureInfo cultureInfo) { var assembly = Assembly.GetExecutingAssembly(); using (Stream stream = assembly.GetManifestResourceStream(resourceName)) { var reader = new StreamReader(stream); return(Mt940Parser.Parse(format, reader, cultureInfo)); } }
private static void ProcessCsvFile(string mt940FilePath) { var cultureInfo = new CultureInfo("nl-NL"); // ABN-AMRO uses decimal comma; https://en.wikipedia.org/wiki/Decimal_mark#Countries_using_Arabic_numerals_with_decimal_comma ICollection <CustomerStatementMessage> statements = Mt940Parser.Parse(new AbnAmro(), mt940FilePath, cultureInfo); var mapped = FlattenThenMap(statements); string csvFilePath = Path.ChangeExtension(mt940FilePath, ".csv"); using (TextWriter writer = new StreamWriter(csvFilePath)) { var csv = new CsvWriter(writer); csv.Configuration.Encoding = Encoding.UTF8; csv.WriteRecords(mapped); } }
public ICollection <Transaction> GetTransactions() { try { var fileName = $@"{Directory.GetFiles(pathBase)[0]}"; var header = new Separator("STARTUMSE"); var trailer = new Separator("-"); var genericFormat = new GenericFormat(header, trailer); var parsed = Mt940Parser.Parse(genericFormat, fileName, CultureInfo.CurrentCulture); var transactions = parsed.Select(x => x.Transactions).FirstOrDefault(); return(transactions); } catch (Exception ex) { throw new Exception(ex.Message); } }
public void GetTransactionsTests_GetBankStatement_ReturnTransactions() { try { var fileName = $@"{Directory.GetFiles(PathBase)[0]}"; var header = new Separator("STARTUMSE"); var trailer = new Separator("-"); var genericFormat = new GenericFormat(header, trailer); var parsed = Mt940Parser.Parse(genericFormat, fileName, CultureInfo.CurrentCulture); var transactions = parsed.Select(x => x.Transactions).FirstOrDefault(); var transaction = transactions.FirstOrDefault(); Assert.That(transactions.Count, Is.Not.Null); Assert.That(transactions.Contains(transaction), Is.True); } catch (Exception) { throw new Exception(); } }
public void GetExpensesTests_TakeTransactions_ReturnExpenses() { try { var fileName = $@"{Directory.GetFiles(PathBase)[0]}"; var header = new Separator("STARTUMSE"); var trailer = new Separator("-"); var genericFormat = new GenericFormat(header, trailer); var parsed = Mt940Parser.Parse(genericFormat, fileName, CultureInfo.CurrentCulture); var transactions = parsed.Select(x => x.Transactions).FirstOrDefault(); var expenses = new List <Expense>(); foreach (var transaction in transactions) { if (transaction.DebitCredit.ToString() == "Debit") { expenses.Add(new Expense { Date = DateTime.Parse(transaction.ValueDate.ToShortDateString()), Amount = decimal.Parse(transaction.Amount.Value.ToString()), Description = transaction.Description, Payee = transaction.Details.Name, Notes = "", Type = ExpenseType.Card }); } } Assert.That(expenses.Count, Is.GreaterThan(0)); Assert.That(expenses[0], Is.Not.Null); } catch (Exception) { throw new Exception(); } }
private bool ValidateFile(string path) { if (!ValidateFilePhysically(path)) { AddFilePhysicalValidationFault(); return(false); } try { var header = new Separator(_headerSeperator); var trailer = new Separator(_trailerSeperator); var genericFomat = new GenericFormat(header, trailer); var parsed = Mt940Parser.Parse(genericFomat, FilePath, CultureInfo.CurrentCulture); } catch (Exception ex) { AddFileLibraryInvalidation(ex); return(false); } return(true); }
public void M() { var data = x; var result = Mt940Parser.ParseData(new AbnAmro(), data, NlCultureInfo); }