private void StripDesc(AccountLine item, Regex regex) { string original = item.Desc; string updated = regex.Replace(original, ""); AccountLine res = new AccountLine(item.Date, item.Reference, item.Type, updated, item.Amount, item.ActualAmount, item.AccountName); //Reporter.WriteLine("{0}\n{1}\n", item.Desc, res.Desc); //Reporter.WriteLine("{0}", res.Desc); SkbRepo.Remove(item); SkbRepo.Add(res); }
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()); }