示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
 public void SetUp()
 {
     mSpecificKeeperDb = new KeeperDb();
     mSpecificResult   = new DbLoadResult(mSpecificKeeperDb);
     mDbGeneralLoader  = A.Fake <IDbGeneralLoader>();
     A.CallTo(() => mDbGeneralLoader.LoadByExtension()).Returns(mSpecificResult);
     mUnderTest = new DbExporter(mDbGeneralLoader);
 }
示例#4
0
        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);
        }
示例#6
0
        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);
            }
        }
示例#7
0
        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();
        }