Exemple #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();
        }
Exemple #2
0
        private async Task OnTransactionAddedDeleted(Transaction transaction)
        {
            var month          = transaction.Date.FirstDayOfMonth();
            var monthViewModel = MonthBalanceViewModels.FirstOrDefault(x => x.Month.FirstDayOfMonth() == month);

            if (monthViewModel != null)
            {
                await monthViewModel.RecalculateBalances(transaction.Category);
            }
        }
Exemple #3
0
        private async Task OnTransactionModified(Transaction transactionOld, Transaction transactionNew)
        {
            var monthViewModelOld = MonthBalanceViewModels.FirstOrDefault(x => x.Month.FirstDayOfMonth() == transactionOld.Date.FirstDayOfMonth());
            var monthViewModelNew = MonthBalanceViewModels.FirstOrDefault(x => x.Month.FirstDayOfMonth() == transactionNew.Date.FirstDayOfMonth());

            if (monthViewModelOld != null)
            {
                await monthViewModelOld.RecalculateBalances(transactionOld.Category);
            }
            if (monthViewModelNew != null)
            {
                await monthViewModelNew.RecalculateBalances(transactionNew.Category);
            }
        }