示例#1
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);
        }
示例#2
0
 private async Task SelectFund(FundViewModel fund)
 {
     if (fund == null)
     {
         return;
     }
     SelectedFund = null;
     await _pageService.PushAsync(new AddFundPage(fund));
 }
示例#3
0
        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);
            }
        }
示例#4
0
        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
            };
        }
示例#5
0
 private async Task ViewFunds(FundViewModel fund)
 {
     await _pageService.PushAsync(new FundsListPage(fund));;
 }
示例#6
0
 private async Task AddFund(FundViewModel fund)
 {
     await _pageService.PushAsync(new AddFundPage(fund));
 }