private void ExecuteChooseAccount() { if (BudgeteerData.Accounts.Count == 0) { Console.WriteLine("\nNo accounts (press enter to return to menu)"); Console.ReadLine(); Program.ChangeController("Menu", true); return; } var input = Console.ReadLine(); var accountIndex = 0; if (int.TryParse(input, out accountIndex) && (accountIndex < BudgeteerData.Accounts.Count)) { Account = BudgeteerData.Accounts[accountIndex]; _state = LoadTransactionsState.File; } else { Console.WriteLine("\nPlease enter a valid account index (press enter to retry)"); Console.ReadLine(); } }
private void ExecuteChooseFile() { var input = Console.ReadLine(); if (File.Exists(input)) { FileName = input; _state = LoadTransactionsState.Progress; _loader = new Thread(LoadFile); _loader.Start(); } else { Console.WriteLine("\nPlease enter a valid filename!"); Console.ReadLine(); } }
public void LoadFile() { var lines = File.ReadAllLines(FileName).ToList(); for (int i = 1; i < lines.Count; i++) { var csvEntry = CsvEntry.FromCsvLine(lines[i]); if (csvEntry == null) continue; var preProcessors = _preprocessors.Where(p => p.Match(csvEntry)); foreach (var preProcessor in preProcessors) { csvEntry = preProcessor.Process(csvEntry); } _transactions.Add(csvEntry.ToTransaction(Account)); _progressMutex.WaitOne(); Progress = GetProgress(i, lines.Count -1); _progressMutex.ReleaseMutex(); //Thread.Sleep(10); } BudgeteerData.Transactions.AddRange(_transactions); _state = LoadTransactionsState.Summary; _overdraw = false; }