private ObservableCollection <T> LoadFrom <T>(string path, string filename, Func <string, IEnumerable <Account>, T> parseLine, List <Account> accountsPlaneList) { var fullFilename = Path.Combine(path, filename); if (!File.Exists(fullFilename)) { Result = new DbLoadResult(325, "File <" + fullFilename + "> not found"); return(null); } var content = File.ReadAllLines(fullFilename, _encoding1251).Where(s => !String.IsNullOrWhiteSpace(s)); var wrongContent = new List <string>(); var result = new ObservableCollection <T>(); foreach (var s in content) { try { result.Add(parseLine(s, accountsPlaneList)); } catch (Exception) { wrongContent.Add(s); } } if (wrongContent.Count != 0) { File.WriteAllLines(Path.ChangeExtension(Path.Combine(path, filename), "err"), wrongContent, _encoding1251); Result = new DbLoadResult(326, "Ошибки загрузки смотри в файле " + Path.ChangeExtension(filename, "err")); } return(result); }
private ObservableCollection <Account> LoadAccounts(string path) { var filename = Path.Combine(path, "Accounts.txt"); if (!File.Exists(filename)) { Result = new DbLoadResult(315, "File <Accounts.txt> not found"); return(null); } var content = File.ReadAllLines(filename, _encoding1251).Where(s => !String.IsNullOrWhiteSpace(s)).ToList(); var accounts = new ObservableCollection <Account>(); foreach (var s in content) { int parentId; var account = _dbClassesInstanceParser.AccountFromString(s, out parentId); if (parentId == 0) { BuildBranchFromRoot(account, content); accounts.Add(account); } } return(accounts); }
public void SetUp() { mSpecificKeeperDb = new KeeperDb(); mSpecificResult = new DbLoadResult(mSpecificKeeperDb); mDbGeneralLoader = A.Fake <IDbGeneralLoader>(); A.CallTo(() => mDbGeneralLoader.LoadByExtension()).Returns(mSpecificResult); mUnderTest = new DbExporter(mDbGeneralLoader); }
public void SetUp() { _loadResult = new DbFromTxtLoader(new DbClassesInstanceParser()). LoadDbFromTxt(Path.GetFullPath(@"TestDb\forDepositCalculationTest")); if (_loadResult.Code != 0) { MessageBox.Show("Database wasn't loaded properly!"); } _underTest = new DepositTrafficExtractor(_loadResult.Db); }
public void LoadByExtension_Should_Select_Loader_And_Load_Db() { var dbLoadResult = new DbLoadResult(null); A.CallTo(() => mLocator.Locate()).Returns("file.txt"); A.CallTo(() => mLoader.Load("file.txt")).Returns(dbLoadResult); var result = mUnderTest.LoadByExtension(); result.Should().Be(dbLoadResult); }
private void LoadDeposits(string path, List <Account> plainList, List <BankDepositOffer> depositOffers) { var filename = Path.Combine(path, "Deposits.txt"); if (!File.Exists(filename)) { Result = new DbLoadResult(315, "File <Deposits.txt> not found"); return; } var content = File.ReadAllLines(filename, _encoding1251).Where(s => !String.IsNullOrWhiteSpace(s)).ToList(); foreach (var s in content) { _dbClassesInstanceParser.DepositFromString(s, plainList, depositOffers); } }
public MainMenuViewModel(DbLoadResult loadResult, MainMenuExecutor mainMenuExecutor, ShellModel shellModel, IMessageBoxer messageBoxer) { _loadResult = loadResult; // в конструкторе DbLoadResult происходит загрузка БД IsDbLoadingFailed = _loadResult.Db == null; if (IsDbLoadingFailed) { messageBoxer.Show(_loadResult.Explanation + "\nApplication will be closed!", "Error!", MessageBoxButton.OK, MessageBoxImage.Error); return; } _mainMenuExecutor = mainMenuExecutor; _shellModel = shellModel; _shellModel.IsDbChanged = false; messageBoxer.DropEmptyBox(); }