/// <summary>
        /// Populates the page with content passed during navigation.  Any saved state is also
        /// provided when recreating a page from a prior session.
        /// </summary>
        /// <param name="navigationParameter">The parameter value passed to
        /// <see cref="Frame.Navigate(Type, Object)"/> when this page was initially requested.
        /// </param>
        /// <param name="pageState">A dictionary of state preserved by this page during an earlier
        /// session.  This will be null the first time a page is visited.</param>
        protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
        {
            BudgetViewModel budgets = new BudgetViewModel();
            BudgetViewModel Budget = budgets.getBudgets()[0];

            ObservableCollection<ListItem> generalList = new ObservableCollection<ListItem>();
            generalList.Add(new ListItem("Paycheck Amount", String.Format("{0:C2}", Budget.MonthlyTakeHome)));
            generalList.Add(new ListItem("Frequency", Budget.Frequency.ToString()));
            generalList.Add(new ListItem("Take Home", String.Format("{0:C2} per month", Budget.Frequency.MonthlyAmount(Budget.MonthlyTakeHome))));

            GeneralInfoList.Items.Add(new ListItem("Paycheck Amount", String.Format("{0:C2}", Budget.MonthlyTakeHome)));
            GeneralInfoList.Items.Add(new ListItem("Frequency", Budget.Frequency.ToString()));
            GeneralInfoList.Items.Add(new ListItem("Take Home", String.Format("{0:C2} per month", Budget.Frequency.MonthlyAmount(Budget.MonthlyTakeHome))));
        }
        public BudgetViewModel getBudget(int budgetId)
        {
            BudgetViewModel budget = new BudgetViewModel();

            using (var db = new SQLite.SQLiteConnection(app.DBPath))
            {
                Budget _budget = db.Table<Budget>().Where(b => b.Id == budgetId).Single();
                budget.Id = _budget.Id;
                budget.Name = _budget.Name;
                budget.DateCreated = _budget.DateCreated;
                budget.MonthlyTakeHome = _budget.PaycheckAmount;
                budget.Frequency = _budget.Frequency;
            }

            return budget;
        }
        /// <summary>
        /// Populates the page with content passed during navigation.  Any saved state is also
        /// provided when recreating a page from a prior session.
        /// </summary>
        /// <param name="navigationParameter">The parameter value passed to
        /// <see cref="Frame.Navigate(Type, Object)"/> when this page was initially requested.
        /// </param>
        /// <param name="pageState">A dictionary of state preserved by this page during an earlier
        /// session.  This will be null the first time a page is visited.</param>
        protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
        {
            BudgetViewModel budgetViewModel = new BudgetViewModel();

            ObservableCollection<NavigationItem> collection = new ObservableCollection<NavigationItem>();
            Object obj = typeof(BudgetView);
            collection.Add(new NavigationItem("Budget", typeof(BudgetView)));
            collection.Add(new NavigationItem("Accounts", typeof(AccountsView)));
            collection.Add(new NavigationItem("Add Revenue", typeof(AddRevenue)));
            collection.Add(new NavigationItem("Add an Expense", typeof(AddExpense)));
            DefaultViewModel["Items"] = collection;

            List<ListItem> transactionTypes = new List<ListItem>();
            transactionTypes.Add(new ListItem(Models.TransactionType.Credit.ToString(), ((int)Models.TransactionType.Credit).ToString()));
            transactionTypes.Add(new ListItem(Models.TransactionType.Debit.ToString(), ((int)Models.TransactionType.Debit).ToString()));
            DefaultViewModel["TransactionTypes"] = transactionTypes;

            DefaultViewModel["Accounts"] = new List<ListItem>();
        }
        public ObservableCollection<BudgetViewModel> getBudgets()
        {
            ObservableCollection<BudgetViewModel> budgets = new ObservableCollection<BudgetViewModel>();

            using (SQLite.SQLiteConnection db = new SQLite.SQLiteConnection(app.DBPath))
            {
                var results = db.Table<Budget>().OrderBy(b => b.Name);

                foreach (Budget _budget in results)
                {
                    BudgetViewModel budget = new BudgetViewModel();
                    budget.Id = _budget.Id;
                    budget.Name = _budget.Name;
                    budget.DateCreated = _budget.DateCreated;
                    budget.MonthlyTakeHome = _budget.PaycheckAmount;
                    budget.Frequency = _budget.Frequency;

                    budgets.Add(budget);
                }
            }

            return budgets;
        }