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); }
private async Task SelectFund(FundViewModel fund) { if (fund == null) { return; } SelectedFund = null; await _pageService.PushAsync(new AddFundPage(fund)); }
private async Task DeleteFund(FundViewModel fundViewModel) { if (await _pageService.DisplayAlert("Warning", $"Are you sure you want to delete {fundViewModel.Source} : {fundViewModel.Amount}?", "YES", "NO")) { Funds.Remove(fundViewModel); var fund = await _fundStore.GetFund(fundViewModel.Id); await _fundStore.DeleteFund(fund); } }
public FundDetailViewModel(FundViewModel viewModel, IFundStore fundStore, IPageService pageService) { if (viewModel == null) { throw new ArgumentException(nameof(viewModel)); } _fundStore = fundStore; _pageService = pageService; SaveFundCommand = new Command(async() => await SaveFund()); Fund = new Fund { Id = viewModel.Id, Amount = viewModel.Amount, Source = viewModel.Source, LastUpdateDate = Convert.ToDateTime(Constants.phoneDate), UserId = Constants.curUserId }; }
private async Task ViewFunds(FundViewModel fund) { await _pageService.PushAsync(new FundsListPage(fund));; }
private async Task AddFund(FundViewModel fund) { await _pageService.PushAsync(new AddFundPage(fund)); }