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()); }
public async Task <BudgetCategoriesViewModel> GetBudgetCategoriesViewModelAsync() { BudgetCategoriesViewModel vm = new BudgetCategoriesViewModel(this.dbFilePath); await vm.LoadVMAsync(); return(vm); }
protected override void OnDisappearing() { base.OnDisappearing(); vm?.Dispose(); vm = null; chartIncome.Chart = null; chartExpenses.Chart = null; }
public async Task <Chart> GetChartAsync(BudgetCategoriesViewModel vm, bool fullSize = false) { var entries = await GetEntriesAsync(vm, fullSize); return(new BarChart() { Entries = entries }); }
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; }
async Task <Entry[]> GetEntriesAsync(BudgetCategoriesViewModel vm, bool fullSize) { return(await GetCategoriesEntriesAsync(vm, fullSize)); }