private void ReportAllSkbLines(SkbRepository skbRepo, ConsoleReporter consoleReporter) { consoleReporter.WriteLine("\nSkbLines:"); consoleReporter.WriteLine("AccountName;Date;ActualAmount;Type;Reference;Desc"); skbRepo.GetAll().ForEach(resitem => consoleReporter.WriteLine("{0};{1};{2};{3};{4};{5}" , resitem.AccountName, resitem.Date, resitem.ActualAmount, resitem.Type, resitem.Reference, resitem.Desc)); }
private void StripNonRepeatingData(string regexstring) { Regex regex = new Regex(regexstring); var res = SkbRepo.GetAll().FindAll((AccountLine item) => regex.IsMatch(item.Desc)); //res.ForEach(item => Reporter.WriteLine("{0}", item.Desc)); res.ForEach(item => StripDesc(item, regex)); }
internal void Execute() { SkbRepository skbRepo = new SkbRepository(); string bank = pathAnalyst.Bank; consoleReporter.WriteLine("Analysing bank: {0}", bank); Dictionary <string, int> countTypes = new Dictionary <string, int>(); foreach (Account account in pathAnalyst.Accounts) { consoleReporter.WriteLine(account.Fullname); consoleReporter.WriteLine(account.ToString()); foreach (var item in account.Items) { skbRepo.Add(item); if (!countTypes.ContainsKey(item.Type)) { countTypes.Add(item.Type, 0); } countTypes[item.Type]++; } } foreach (var typecount in countTypes) { consoleReporter.WriteLine("{0}: {1}", typecount.Key, typecount.Value); } //Extract internal transactions consoleReporter.WriteLine("\n\nBegin: {0} lines", skbRepo.GetAll().Count); InternalTransactionsRepository internalRepo = new InternalTransactionsRepository(); InternalMatcher internalMatcher = new InternalMatcher(skbRepo, internalRepo); internalMatcher.Match(InternalMatcher.MatchOnAll); consoleReporter.WriteLine("\nAfter 1 run: {0} lines, {1} matches", skbRepo.GetAll().Count, internalRepo.GetAll().Count); internalMatcher.Match(InternalMatcher.MatchOnMost); consoleReporter.WriteLine("\nAfter 2 run: {0} lines, {1} matches", skbRepo.GetAll().Count, internalRepo.GetAll().Count); List <AccountLine> positiveLines = AccountLineFilterService.GetPositiveLines(internalRepo.GetAll()); var internalSum = AccountLineAggregatorService.Sum(positiveLines); consoleReporter.WriteLine("\nTotal internal transactions: {0}", internalSum); //Extract internal transactions END PayeeRepository payeeRepo = new PayeeRepository(); PayeeExtractor payeeExtractor = new PayeeExtractor(skbRepo, payeeRepo, consoleReporter); payeeExtractor.ExtractPayees(); foreach (var payee in payeeRepo.GetAll()) { consoleReporter.WriteLine("{0}", payee); } //consoleReporter.WriteLine("\n\nLines POST PROCESSING"); //skbRepo.GetAll().ForEach(resitem => consoleReporter.WriteLine("{0}", resitem.Desc)); ReportAllSkbLines(skbRepo, consoleReporter); this.filePersistor.Persist(skbRepo.GetAll()); }