public void AddNewBudgetCategory()
        {
            BudgetCategoryViewModel vm       = new BudgetCategoryViewModel(this.dbFilePath);
            BudgetCategory          category = new BudgetCategory();

            Task.Run(() => vm.PopulateVMAsync(category));
            vm.CanDelete = false;
            vm.CanEdit   = true;
            vm.IsNew     = true;
            this.BudgetCategories.Add(vm);
            GroupCategories();
            this.SelectedBudgetCategory = vm;
        }
        public async Task AddNewBudgetCategoryAsync()
        {
            BudgetCategoryViewModel vm       = new BudgetCategoryViewModel(this.dbFilePath);
            BudgetCategory          category = new BudgetCategory();
            await vm.PopulateVMAsync(category);

            vm.IsNew     = true;
            vm.CanDelete = false;
            vm.CanEdit   = true;
            this.BudgetCategories.Add(vm);
            await GroupCategoriesAsync();

            this.SelectedBudgetCategory = vm;
        }
        internal async Task LoadVMAsync()
        {
            using (UnitOfWork uow = new UnitOfWork(this.dbFilePath))
            {
                var _results = await uow.GetAllBudgetCategoriesAsync();

                var _tempList = new List <BudgetCategoryViewModel>();
                if (_results.Successful)
                {
                    foreach (var category in _results.Results.OrderByDescending(c => c.budgetAmount))
                    {
                        var vm = new BudgetCategoryViewModel(this.dbFilePath);
                        vm.CanEdit   = true;
                        vm.CanDelete = true;
                        await vm.PopulateVMAsync(category);

                        this.BudgetCategories.Add(vm);
                    }
                    await GroupCategoriesAsync();
                }
                else
                {
                    if (_results.WorkException != null)
                    {
                        WriteErrorCondition(_results.WorkException);
                    }
                    else if (!string.IsNullOrEmpty(_results.Message))
                    {
                        WriteErrorCondition(_results.Message);
                    }
                    else
                    {
                        WriteErrorCondition("An unknown error has occurred");
                    }
                }
            }
        }