Example #1
0
 public void SetUp()
 {
     _keeperDb  = new KeeperDb();
     _underTest = new RateExtractor(_keeperDb);
     _keeperDb.CurrencyRates = new ObservableCollection <CurrencyRate>
     {
         new CurrencyRate
         {
             BankDay  = FirstDay,
             Currency = CurrencyCodes.BYR,
             Rate     = 1,
         },
         new CurrencyRate
         {
             BankDay  = ThirdDay,
             Currency = CurrencyCodes.BYR,
             Rate     = 2,
         },
         new CurrencyRate
         {
             BankDay  = ThirdDay,
             Currency = CurrencyCodes.EUR,
             Rate     = 7,
         },
     };
 }
Example #2
0
        public void EncryptAndSerialize(KeeperDb db, string filename)
        {
            try
            {
                MadeDbxBackup(filename);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }

            byte[] key        = { 0xc5, 0x51, 0xf6, 0x4e, 0x97, 0xdc, 0xa0, 0x54, 0x89, 0x1d, 0xe6, 0x62, 0x3f, 0x27, 0x00, 0xca };
            byte[] initVector = { 0xf3, 0x5e, 0x7a, 0x81, 0xae, 0x8c, 0xb4, 0x92, 0xd0, 0xf2, 0xe7, 0xc1, 0x8d, 0x54, 0x00, 0xd8 };

            try
            {
                using (Stream fStream = new FileStream(filename, FileMode.Create, FileAccess.Write))
                {
                    var rmCrypto = new RijndaelManaged();

                    using (var cryptoStream = new CryptoStream(fStream, rmCrypto.CreateEncryptor(key, initVector), CryptoStreamMode.Write))
                    {
                        var binaryFormatter = new BinaryFormatter();
                        binaryFormatter.Serialize(cryptoStream, db);
                    }
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
        }
        public BankDepositRatesAndRulesViewModel(KeeperDb db)
        {
            _db     = db;
            NewDate = DateTime.Today;
//            DepositOffersForCombobox = accountTreeStraightener.Flatten(_db.Accounts).Where(a => a.Deposit != null).ToList();
            DepositOffersForCombobox = _db.BankDepositOffers.ToList();
        }
Example #4
0
        public OpenOrEditDepositViewModel(KeeperDb db, IWindowManager windowManager)
        {
            _db            = db;
            _windowManager = windowManager;

            InitializeListsForCombobox();
        }
Example #5
0
        public NbRatesViewModel(KeeperDb db, NbRbRatesExtractor nbRbRatesExtractor)
        {
            var dispatcherTimer = new DispatcherTimer();

            dispatcherTimer.Tick    += DispatcherTimerTick;
            dispatcherTimer.Interval = new TimeSpan(0, 0, 1);
            dispatcherTimer.Start();

            _backgroundWorker = new BackgroundWorker();
            _backgroundWorker.WorkerReportsProgress      = true;
            _backgroundWorker.WorkerSupportsCancellation = true;
            _backgroundWorker.DoWork += BackgroundWorkerDoWork;

            if (db.OfficialRates == null)
            {
                db.OfficialRates = new ObservableCollection <NbRate>();
                db.OfficialRates.Add(new NbRate()
                {
                    Date = new DateTime(1995, 3, 31), UsdRate = 11550, EurRate = 0, RurRate = 2.28
                });
            }

            Rows = db.OfficialRates;

            _nbRbRatesExtractor = nbRbRatesExtractor;
        }
Example #6
0
        public void ClearAllTables(KeeperDb db)
        {
            db.CurrencyRates.Clear();
            db.ArticlesAssociations.Clear();
            db.TransWithTags.Clear();

            ClearAccounts(db);
        }
Example #7
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);
 }
Example #8
0
 public void RemoveBranchFromDatabase(KeeperDb db, Account branch)
 {
     foreach (var child in branch.Children.ToArray())
     {
         RemoveBranchFromDatabase(db, child);
     }
     db.Accounts.Remove(branch);
 }
 public UniversalControlVm(KeeperDb db, BalanceDuringTransactionHinter balanceDuringTransactionHinter,
                           AccNameSelectionControlInitializer accNameSelectionControlInitializer, AssociationFinder associationFinder)
 {
     _db = db;
     _accNameSelectionControlInitializer = accNameSelectionControlInitializer;
     _associationFinder = associationFinder;
     _balanceDuringTransactionHinter = balanceDuringTransactionHinter;
 }
Example #10
0
        public MonthForecaster(KeeperDb db, RegularPaymentsProvider regularPaymentsProvider, RateExtractor rateExtractor,
                               DepositCalculationAggregator depositCalculationAggregator)
        {
            _db = db;
            _regularPaymentsProvider = regularPaymentsProvider;
            _rateExtractor           = rateExtractor;

            _depositCalculationAggregator = depositCalculationAggregator;
        }
Example #11
0
 public ComboTreesCaterer(KeeperDb db)
 {
     _db = db;
     InitializeListsForIncome();
     InitializeListsForExpense();
     InitializeListsForTransfer();
     InitializeListsForExchange();
     InitializeListForFilterTags();
 }
Example #12
0
 public MenuFileExecutor(KeeperDb db, MySettings mySettings,
                         DbCleaner dbCleaner, DbBackuper dbBackuper, IDbToTxtSaver dbToTxtSaver, IDbFromTxtLoader dbFromTxtLoader)
 {
     _db              = db;
     _mySettings      = mySettings;
     _dbCleaner       = dbCleaner;
     _dbBackuper      = dbBackuper;
     _dbToTxtSaver    = dbToTxtSaver;
     _dbFromTxtLoader = dbFromTxtLoader;
 }
Example #13
0
        private void ClearAccounts(KeeperDb db)
        {
            var roots = new List <Account>(from account in db.Accounts
                                           where account.Parent == null
                                           select account);

            foreach (var root in roots)
            {
                RemoveBranchFromDatabase(db, root);
            }
        }
Example #14
0
        static Account GetRandomAccount(KeeperDb keeperDb, Account targetAccount)
        {
            switch (mRnd.Next(2))
            {
            case 0:
                return(keeperDb.Accounts[mRnd.Next(keeperDb.Accounts.Count)]);

            default:
                return(targetAccount);
            }
        }
        public AccountForestViewModel(ShellModel shellModel, KeeperDb db, AccountTreesGardener accountTreesGardener,
                                      AccountLowLevelOperator accountLowLevelOperator, DepositCalculationAggregator depositCalculationAggregator)
        {
            MyForestModel            = shellModel.MyForestModel;
            _db                      = db;
            _accountTreesGardener    = accountTreesGardener;
            _accountLowLevelOperator = accountLowLevelOperator;

            _depositCalculationAggregator = depositCalculationAggregator;

            InitVariablesToShowAccounts();
        }
Example #16
0
        public BankDepositOffersViewModel(KeeperDb db, IWindowManager windowManager)
        {
            _db = db;

            _windowManager = windowManager;
            if (db.BankDepositOffers == null)
            {
                db.BankDepositOffers = new ObservableCollection <BankDepositOffer>();
            }
            Rows = db.BankDepositOffers;
            InitializeListsForCombobox();
        }
Example #17
0
        private void ImportDatabaseFromTxt()
        {
            var result = _dbFromTxtLoader.LoadDbFromTxt((string)_mySettings.GetSetting("TemporaryTxtDbPath"));

            if (result.Code != 0)
            {
                MessageBox.Show(result.Explanation);
            }
            else
            {
                _db = result.Db;
            }
        }
Example #18
0
        public RatesViewModel(KeeperDb db)
        {
            CurrencyList = Enum.GetValues(typeof(CurrencyCodes)).OfType <CurrencyCodes>().ToList();

            Rows = db.CurrencyRates;
            IsCollectionChanged = false;
            InitFilterList();
            SelectedFilter = FilterList.First(f => !f.IsOn);

            var view = CollectionViewSource.GetDefaultView(Rows);

            view.Filter += OnFilter;
            view.SortDescriptions.Add(new SortDescription("BankDay", ListSortDirection.Ascending));
        }
Example #19
0
        public ArticlesAssociationsViewModel(KeeperDb db, ComboboxCaterer comboboxCaterer)
        {
            _db = db;
            _comboboxCaterer = comboboxCaterer;

            InitializeListsForCombobox();

            Rows = _db.ArticlesAssociations;

            var view = CollectionViewSource.GetDefaultView(Rows);

            view.SortDescriptions.Add(new SortDescription("OperationType", ListSortDirection.Ascending));
            view.SortDescriptions.Add(new SortDescription("ExternalAccount", ListSortDirection.Ascending));
        }
Example #20
0
        public RegularPaymentsViewModel(RegularPaymentsProvider provider, KeeperDb db)
        {
            _provider = provider;
            _db       = db;

            CurrencyList = Enum.GetValues(typeof(CurrencyCodes)).OfType <CurrencyCodes>().ToList();
            ArticleList  = new List <string>();
            var accounts = _db.FlattenAccounts().Where(a => a.Is("Все доходы") || a.Is("Все расходы")).ToList();

            foreach (var account in accounts)
            {
                ArticleList.Add(account.Name);
            }
        }
Example #21
0
 public FilterModel(KeeperDb db, AccNameSelectionControlInitializer accNameSelectionControlInitializer)
 {
     AvailableAccNames = new List <AccName>
     {
         new AccName().PopulateFromAccount(db.SeekAccount("Мои"), new List <string>())
     };
     IsAccNamePosition12  = true;
     AmountEqualTo        = true;
     IsCurrencyPosition12 = true;
     MyTagPickerVm        = new TagPickerVm {
         TagSelectorVm = accNameSelectionControlInitializer.ForFilter(), Tags = MyTags
     };
     IsTagsJoinedByAnd = true;
     CleanAll();
     MyTags.CollectionChanged += MyTags_CollectionChanged;
 }
Example #22
0
        public DbLoadResult LoadDbFromTxt(string path)
        {
            var db = new KeeperDb {
                Accounts = LoadAccounts(path)
            };
//            var accountsPlaneList = _accountTreeStraightener.Flatten(db.Accounts).ToList();
            var accountsPlaneList = db.FlattenAccounts().ToList();

            db.BankDepositOffers = LoadFrom(path, "BankDepositOffers.txt",
                                            _dbClassesInstanceParser.BankDepositOfferFromString, accountsPlaneList);
            if (Result != null)
            {
                return(Result);
            }
            LoadDepositOffersRates(path, db.BankDepositOffers.ToList());
            LoadDeposits(path, accountsPlaneList, db.BankDepositOffers.ToList());
            if (Result != null)
            {
                return(Result);
            }
            db.TransWithTags = LoadFrom(path, "TransWithTags.txt",
                                        _dbClassesInstanceParser.TranWithTagsFromString, accountsPlaneList);
            if (Result != null)
            {
                return(Result);
            }
            db.ArticlesAssociations = LoadFrom(path, "ArticlesAssociations.txt",
                                               _dbClassesInstanceParser.ArticleAssociationFromStringWithNames, accountsPlaneList);
            if (Result != null)
            {
                return(Result);
            }
            db.CurrencyRates = LoadFrom(path, "CurrencyRates.txt",
                                        _dbClassesInstanceParser.CurrencyRateFromString, accountsPlaneList);
            if (Result != null)
            {
                return(Result);
            }
            db.OfficialRates = LoadFrom(path, "OfficialRates.txt",
                                        _dbClassesInstanceParser.OfficialRateFromString, accountsPlaneList);
            if (Result != null)
            {
                return(Result);
            }
            return(new DbLoadResult(db));
        }
Example #23
0
        public TransModel(KeeperDb db)
        {
            Db          = db;
            _tranFilter = new TranFilter();

            Rows = WrapTransactions(db.TransWithTags);
            Rows.CollectionChanged += Rows_CollectionChanged;

            SortedRows         = CollectionViewSource.GetDefaultView(Rows);
            SortedRows.Filter += Filter;
            SortedRows.SortDescriptions.Add(new SortDescription("Tran.Timestamp", ListSortDirection.Ascending));

            SortedRows.MoveCurrentToLast();
            SelectedTranWrappedForDatagrid            = (TranWrappedForDatagrid)SortedRows.CurrentItem;
            SelectedTranWrappedForDatagrid.IsSelected = true;

            IsCollectionChanged = false;
        }
Example #24
0
        public DepositsViewModel(KeeperDb db, RateExtractor rateExtractor,
                                 DepositCalculationAggregator depositCalculatorAggregator,
                                 OldRatesDiagramDataExtractor oldRatesDiagramDataExtractor)
        {
            var sw = new Stopwatch();

            Console.WriteLine("DepositViewModel ctor starts {0}", sw.Elapsed);
            sw.Start();

            _db            = db;
            _rateExtractor = rateExtractor;
            _depositCalculatorAggregator  = depositCalculatorAggregator;
            _oldRatesDiagramDataExtractor = oldRatesDiagramDataExtractor;

            MyTitleStyle = new Style();

            DepositList = new List <Deposit>();
            foreach (var account in _db.FlattenAccounts())
            {
                if (!account.Is("Депозиты") || account.Children.Count != 0 || !account.IsDeposit())
                {
                    continue;
                }
                _depositCalculatorAggregator.FillinFieldsForOneDepositReport(account.Deposit);
                DepositList.Add(account.Deposit);
            }
            SelectedDeposit = DepositList[0];

            UpperRow    = new GridLength(1, GridUnitType.Star);
            LowerRow    = new GridLength(1, GridUnitType.Star);
            LeftColumn  = new GridLength(1, GridUnitType.Star);
            RightColumn = new GridLength(1, GridUnitType.Star);

            DepoCurrenciesProportionChartCtor();
            Console.WriteLine("DepositViewModel ctor 1 {0}", sw.Elapsed);
            YearsProfitCtor();
            Console.WriteLine("DepositViewModel ctor 2 {0}", sw.Elapsed);
            TotalBalancesCtor();
            Console.WriteLine("DepositViewModel ctor 3 {0}", sw.Elapsed);
//            CashDepoProportionChartCtor();

            sw.Stop();
            Console.WriteLine("DepositViewModel ctor takes {0}", sw.Elapsed);
        }
Example #25
0
        private void PrepareTestDb()
        {
            _rootAccountWithoutChildren = new Account("RootWithoutChildren");
            _rootAccount               = new Account("Root");
            _parentAccount             = new Account("Parent account");
            _emptyChildAccount         = new Account("Empty child account");
            _childAccountWithOperation = new Account("Child account with operation");

            _rootAccount.Children.Add(_parentAccount);
            _parentAccount.Children.Add(_emptyChildAccount);
            _parentAccount.Children.Add(_childAccountWithOperation);

            _db = new KeeperDb {
                Accounts = new ObservableCollection <Account>(), TransWithTags = new ObservableCollection <TranWithTags>()
            };
            _db.Accounts.Add(_rootAccount);
            _db.Accounts.Add(_rootAccountWithoutChildren);
            _db.TransWithTags.Add(new TranWithTags()
            {
                MyAccount = _childAccountWithOperation
            });
        }
Example #26
0
        public void Execute(MainMenuAction action)
        {
            switch (action)
            {
            case MainMenuAction.SaveDatabase:
                new DbSerializer().EncryptAndSerialize(_db, _mySettings.GetCombinedSetting("DbFileFullPath"));
                break;

            case MainMenuAction.LoadDatabase:
                _db = new DbSerializer().DecryptAndDeserialize(_mySettings.GetCombinedSetting("DbFileFullPath"));
                break;

            case MainMenuAction.ClearDatabase:
                _dbCleaner.ClearAllTables(_db);
                break;

            case MainMenuAction.MakeDatabaseBackup:
                _dbBackuper.MakeDbTxtCopy();
                break;

            case MainMenuAction.ExportDatabaseToTxt:
                _dbToTxtSaver.SaveDbInTxt();
                break;

            case MainMenuAction.ImportDatabaseFromTxt:
                ImportDatabaseFromTxt();
                break;

            case MainMenuAction.RemoveExtraBackups:
                new DbBackupOrganizer().RemoveIdenticalBackups();
                break;

            case MainMenuAction.RemoveAllNonFirstInMonth:
                new DbBackupOrganizer().RemoveAllNonFirstInMonth();
                break;
            }
        }
Example #27
0
 public RateExtractor(KeeperDb db)
 {
     _db = db;
 }
Example #28
0
 public TransViewModel(KeeperDb db)
 {
     Model = new TransModel(db);
     Top   = 100;
     Left  = 700;
 }
Example #29
0
 public OldRatesDiagramDataFactory(KeeperDb db)
 {
     _db = db;
 }
 public AccountCantBeDeletedChecker(KeeperDb keeperDb)
 {
     _keeperDb = keeperDb;
 }