コード例 #1
0
        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);
        }
コード例 #2
0
        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));
            }
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: radoraykov/MT940-to-CSV
        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);
            }
        }
コード例 #4
0
        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);
            }
        }
コード例 #5
0
        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();
            }
        }
コード例 #6
0
        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();
            }
        }
コード例 #7
0
ファイル: MT940LoaderMain.cs プロジェクト: rmjahangeer/GF-FRS
        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);
        }
コード例 #8
0
 public void M()
 {
     var data   = x;
     var result = Mt940Parser.ParseData(new AbnAmro(), data, NlCultureInfo);
 }