コード例 #1
0
        async Task <Entry[]> GetCategoriesEntriesAsync(BudgetCategoriesViewModel vm, bool fullSize)
        {
            var context = vm.BudgetCategories;

            List <Entry> entries = new List <Entry>();

            var fltCatExpenseSum = (float)context.Where(c => c.CategoryType == BudgetCategoryType.Expense).Sum(c => c.Amount);
            var fltCatIncomeSum  = (float)context.Where(c => c.CategoryType == BudgetCategoryType.Income).Sum(c => c.Amount);

            Entry[] _entryArray;
            if (fullSize)
            {
                _entryArray = new Entry[]
                {
                    EntryUtility.GetEntry(fltCatExpenseSum, SKColors.Red, "Expenses", fltCatExpenseSum.ToString("C")),
                    EntryUtility.GetEntry(fltCatIncomeSum, SKColors.Green, "Income", fltCatIncomeSum.ToString("C"))
                };
            }
            else
            {
                _entryArray = new Entry[]
                {
                    EntryUtility.GetEntry(fltCatExpenseSum, SKColors.Red, "Expenses"),
                    EntryUtility.GetEntry(fltCatIncomeSum, SKColors.Green, "Income")
                };
            }

            var _entries = await BuildEntryCollectionAsync(_entryArray);

            entries.AddRange(_entries.ToList());

            return(entries.ToArray());
        }
コード例 #2
0
        public async Task <BudgetCategoriesViewModel> GetBudgetCategoriesViewModelAsync()
        {
            BudgetCategoriesViewModel vm = new BudgetCategoriesViewModel(this.dbFilePath);
            await vm.LoadVMAsync();

            return(vm);
        }
コード例 #3
0
 protected override void OnDisappearing()
 {
     base.OnDisappearing();
     vm?.Dispose();
     vm = null;
     chartIncome.Chart   = null;
     chartExpenses.Chart = null;
 }
コード例 #4
0
        public async Task <Chart> GetChartAsync(BudgetCategoriesViewModel vm, bool fullSize = false)
        {
            var entries = await GetEntriesAsync(vm, fullSize);

            return(new BarChart()
            {
                Entries = entries
            });
        }
コード例 #5
0
        protected async override void OnAppearing()
        {
            base.OnAppearing();
            vm = await ds.GetBudgetCategoriesViewModelAsync();

            vm.SelectedBudgetCategory = null;

            //chartCategories.Chart = await ChartUtility.Instance.GetChartAsync(vm);
            var provider = new MicrochartsProvider <BudgetCategoriesViewModel>();

            chartIncome.Chart = await provider.GetChartAsync(vm, 0, false);

            chartExpenses.Chart = await provider.GetChartAsync(vm, 1, false);

            this.BindingContext = vm;
        }
コード例 #6
0
 async Task <Entry[]> GetEntriesAsync(BudgetCategoriesViewModel vm, bool fullSize)
 {
     return(await GetCategoriesEntriesAsync(vm, fullSize));
 }