Ejemplo n.º 1
0
        public async Task Initialize()
        {
            await _repository.Initialize();

            await AddTransactionsViewModel.Initialize();

            SearchTransactions.Initialize();

            var i = 0;

            while (true)
            {
                var monthBalanceViewModel = new MonthBalanceViewModel(DateTime.Now.PreviousMonth(i), _repository, _windowService);
                await monthBalanceViewModel.Initialize();

                if (monthBalanceViewModel.TotalBalance.Income > 0 || monthBalanceViewModel.TotalBalance.Expense < 0 || i == 0) // always add current month
                {
                    monthBalanceViewModel.DetailTransactionsRequested += async(sender, args) =>
                    {
                        await SearchTransactions.SearchForDatesAndCategory(args.DateFrom, args.DateTo, args.Category);
                    };
                    MonthBalanceViewModels.Add(monthBalanceViewModel);
                    i++;
                }
                else
                {
                    break;
                }
            }

            await CheckGoalsButtons();
        }
Ejemplo n.º 2
0
        public MainViewModel(IRepository repository, IWindowService windowService)
        {
            _repository            = repository;
            _windowService         = windowService;
            _windowService         = windowService;
            MonthBalanceViewModels = new ObservableCollection <MonthBalanceViewModel>();

            _repository.TransactionAdded       += async(s, a) => { await OnTransactionAddedDeleted(a.Transaction); };
            _repository.TransactionDeleted     += async(s, a) => { await OnTransactionAddedDeleted(a.Transaction); };
            _repository.TransactionUpdated     += async(s, a) => { await OnTransactionModified(a.OldTransaction, a.NewTransaction); };
            _repository.TransactionBulkUpdated += async(s, a) => { await OnTransactionBulkModified(); };
            _repository.GoalsUpdated           += async(s, a) => await CheckGoalsButtons();

            AddTransactionsViewModel = new AddTransactionsViewModel(_repository, _windowService);
            AddTransactionsViewModel.UseAsTemplateRequested +=
                (s, a) => AddTransactionsViewModel.UseTransactionAsTemplate(a.Transaction);

            SearchTransactions = new SearchTransactionListViewModel(_repository, _windowService);
            SearchTransactions.UseAsTemplateRequested +=
                (s, a) => AddTransactionsViewModel.UseTransactionAsTemplate(a.Transaction);
        }