private IEnumerable <StatementRow> ParseCSV(string file)
        {
            // using (var reader = new StreamReader(file)) {
            //     using (var csv = new CsvReader(reader)) {
            //         csv.Configuration.HasHeaderRecord = true;

            //         var records = csv.GetRecords<StatementRow>();
            //         return records.ToList();
            //     }
            // }

            List <StatementRow> statement = new List <StatementRow>();

            using (CsvReader reader = new CsvReader(file))
            {
                foreach (string[] values in reader.RowEnumerator)
                {
                    StatementRow row = new StatementRow();
                    row.Date        = Convert.ToDateTime(DateTime.ParseExact(values[0], "dd/MM/yyyy", CultureInfo.InvariantCulture));
                    row.Description = values[1];
                    row.Deposits    = values[2] != "" ? CleanNumericData(values[2].Replace(",", string.Empty)) : 0.0;
                    row.Withdrawals = values[3] != "" ? CleanNumericData(values[3].Replace(",", string.Empty)) : 0.0;
                    row.Balance     = values[4] != "" ? CleanNumericData(values[4].Replace(",", string.Empty)) : 0.0;

                    statement.Add(row);
                    //Console.WriteLine("Row {0} has {1} values.", reader.RowIndex, values.Length);
                }
            }

            return(statement);
        }
예제 #2
0
        private BankTransaction CreateBankTransaction(StatementRow row)
        {
            var trans = new BankTransaction();

            trans.TransactionDate = row.TransactionDate;
            trans.TransactionType = row.Type;
            trans.Description     = row.Description;
            trans.DebitAmount     = row.DebitAmount;
            trans.CreditAmount    = row.CreditAmount;

            return(trans);
        }