Beispiel #1
0
        private async Task SelectExpense(ExpenseViewModel expense)
        {
            if (expense == null)
            {
                return;
            }

            SelectedExpense = null;
            await _pageService.PushAsync(new AddExpensePage(expense));
        }
Beispiel #2
0
        private async Task DeleteExpense(ExpenseViewModel expenseViewModel)
        {
            if (await _pageService.DisplayAlert("Warning", $"Are you sure you want to delete {expenseViewModel.Description} : {expenseViewModel.Amount}?", "YES", "NO"))
            {
                Expenses.Remove(expenseViewModel);

                var expense = await _expenseStore.GetExpense(expenseViewModel.Id);

                await _expenseStore.DeleteExpense(expense);
            }
        }
Beispiel #3
0
        public ExpenseDetailViewModel(ExpenseViewModel viewModel, IExpenseStore expenseStore, IPageService pageService)
        {
            if (viewModel == null)
            {
                throw new ArgumentException(nameof(viewModel));
            }
            _pageService  = pageService;
            _expenseStore = expenseStore;

            SaveExpenseCommand = new Command(async() => await SaveExpense());

            Expense = new Expense
            {
                Id          = viewModel.Id,
                Amount      = viewModel.Amount,
                Description = viewModel.Description,
                PostDate    = Convert.ToDateTime(Constants.phoneDate),
                UserId      = Constants.curUserId
            };
        }
Beispiel #4
0
 private async Task AddExpense(ExpenseViewModel expense)
 {
     await _pageService.PushAsync(new AddExpensePage(expense));
 }
Beispiel #5
0
        public BudgetViewModel(IPageService pageService, FundViewModel fundViewModel = null, IFundStore fundStore = null, ExpenseViewModel expenseViewModel = null, IExpenseStore expenseStore = null)
        {
            //if (fundViewModel == null) throw new ArgumentException(nameof(fundViewModel));
            //if (expenseViewModel == null) throw new ArgumentException(nameof(expenseViewModel));

            _fundStore    = fundStore;
            _expenseStore = expenseStore;
            _pageService  = pageService;

            LoadExpenseDataCommand = new Command(async() => await LoadExpenseData());
            LoadFundDataCommand    = new Command(async() => await LoadFundData());
            AddFundCommand         = new Command(async() => await AddFund(fundViewModel));
            SelectExpenseCommand   = new Command <ExpenseViewModel>(async c => await SelectExpense(c));
            SelectFundCommand      = new Command <FundViewModel>(async c => await SelectFund(c));
            AddExpenseCommand      = new Command(async() => await AddExpense(expenseViewModel));
            RefreshDataCommand     = new Command(async() => await RefreshData());
            ViewFundCommand        = new Command(async() => await ViewFunds(fundViewModel));
            DeleteFundCommand      = new Command <FundViewModel>(async c => await DeleteFund(c));
            DeleteExpenseCommand   = new Command <ExpenseViewModel>(async c => await DeleteExpense(c));

            MessagingCenter.Subscribe <ExpenseDetailViewModel, Expense>(this, Events.ExpenseAdded, OnExpenseAdded);
            MessagingCenter.Subscribe <ExpenseDetailViewModel, Expense>(this, Events.ExpenseUpdated, OnExpenseUpdated);
            MessagingCenter.Subscribe <FundDetailViewModel, Fund>(this, Events.FundAdded, OnFundAdded);
            MessagingCenter.Subscribe <FundDetailViewModel, Fund>(this, Events.FundUpdated, OnFundUpdated);
        }