public async Task <EasyBudgetStatusViewModel> GetStatusVM() { EasyBudgetStatusViewModel vm = new EasyBudgetStatusViewModel(this.dbFilePath); await vm.LoadVMAsync(); return(vm); }
//public Chart GetChart(EasyBudgetStatusViewModel vm) //{ // var entries = GetEntries(vm); // return new BarChart() { Entries = entries }; //} //public Chart GetChart(BudgetCategoriesViewModel vm, bool fullSize = false) //{ // var entries = GetEntries(vm, fullSize); // return new BarChart() { Entries = entries }; //} //public Chart GetChart(BudgetCategoryViewModel vm, bool fullSize = false) //{ // var entries = GetEntries(vm, fullSize); // return new DonutChart() { Entries = entries }; //} //public Chart GetChart(BudgetCategoryViewModel vm, CategoryChartType chartType, bool fullSize = false) //{ // var entries = GetEntries(vm, chartType, fullSize); // return new DonutChart() { Entries = entries }; //} public async Task <Chart> GetChartAsync(EasyBudgetStatusViewModel vm, bool fullSize = false) { var entries = await GetEntriesAsync(vm, fullSize); return(new BarChart() { Entries = entries }); }
protected override void OnDisappearing() { base.OnDisappearing(); vm = null; chartIncome.Chart = null; chartExpenses.Chart = null; chartAccountTransactions.Chart = null; }
//Entry[] GetEntries(EasyBudgetStatusViewModel vm, bool fullSize) //{ // Entry[] IncomeEntries = GetIncomeEntries(vm, fullSize); // Entry[] ExpensesEntries = GetExpensesEntries(vm, fullSize); // Entry[] _Entries = new Entry[IncomeEntries.Length + ExpensesEntries.Length]; // Array.Copy(IncomeEntries, _Entries, IncomeEntries.Length); // Array.Copy(ExpensesEntries, 0, _Entries, IncomeEntries.Length, ExpensesEntries.Length); // return _Entries; //} //Entry[] GetIncomeEntries(EasyBudgetStatusViewModel vm, bool fullSize) //{ // var context = vm; // List<Entry> entries = new List<Entry>(); // var fltIncome = (float)context.vmCategories.BudgetCategories // .Where(c => c.CategoryType == BudgetCategoryType.Income) // .Sum(c => c.Amount); // var fltIncomeActual = (float)context.vmAccounts.BankAccounts // .Sum(bk => bk.AccountRegister // .Where(ar => ar.ItemType == AccountRegisterItemViewModel.AccountItemType.Deposits) // .Sum(d => d.ItemAmount)); // if (fullSize) // { // entries.Add(EntryUtility.GetEntry(fltIncome, SKColors.LightGreen, "Budgeted", fltIncome.ToString("C"))); // entries.Add(EntryUtility.GetEntry(fltIncomeActual, SKColors.Green, "Actual", fltIncomeActual.ToString("C"))); // } // else // { // entries.Add(EntryUtility.GetEntry(fltIncome, SKColors.LightGreen, "Budgeted")); // entries.Add(EntryUtility.GetEntry(fltIncomeActual, SKColors.Green, "Actual")); // } // return entries.ToArray(); //} //Entry[] GetExpensesEntries(EasyBudgetStatusViewModel vm, bool fullSize) //{ // var context = vm; // List<Entry> entries = new List<Entry>(); // var fltExpenses = (float)context.vmCategories.BudgetCategories // .Where(c => c.CategoryType == Models.BudgetCategoryType.Expense) // .Sum(c => c.Amount); // var fltExpenseActual = (float)context.vmAccounts.BankAccounts // .Sum(bk => bk.AccountRegister // .Where(ar => ar.ItemType == AccountRegisterItemViewModel.AccountItemType.Withdrawals) // .Sum(d => d.ItemAmount)); // if (fullSize) // { // entries.Add(EntryUtility.GetEntry(fltExpenses, SKColors.Pink, "Budgeted", fltExpenses.ToString("C"))); // entries.Add(EntryUtility.GetEntry(fltExpenseActual, SKColors.Red, "Actual", fltExpenseActual.ToString("C"))); // } // else // { // entries.Add(EntryUtility.GetEntry(fltExpenses, SKColors.Pink, "Budgeted")); // entries.Add(EntryUtility.GetEntry(fltExpenseActual, SKColors.Red, "Actual")); // } // return entries.ToArray(); //} //Entry[] GetEntries(BudgetCategoriesViewModel vm, bool fullSize) //{ // return GetCategoriesEntries(vm, fullSize); //} //Entry[] GetCategoriesEntries(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); // if (fullSize) // { // entries.Add(EntryUtility.GetEntry(fltCatExpenseSum, SKColors.Red, "Expenses", fltCatExpenseSum.ToString("C"))); // entries.Add(EntryUtility.GetEntry(fltCatIncomeSum, SKColors.Green, "Income", fltCatIncomeSum.ToString("C"))); // } // else // { // entries.Add(EntryUtility.GetEntry(fltCatExpenseSum, SKColors.Red, "Expenses")); // entries.Add(EntryUtility.GetEntry(fltCatIncomeSum, SKColors.Green, "Income")); // } // return entries.ToArray(); //} //Entry[] GetEntries(BudgetCategoryViewModel vm, bool fullSize) //{ // return GetCategoryEntries(vm, fullSize); //} //Entry[] GetCategoryEntries(BudgetCategoryViewModel vm, bool fullSize) //{ // var context = vm.BudgetItems; // List<Entry> entries = new List<Entry>(); // foreach (var itm in context) // { // if (fullSize) // { // entries.Add(EntryUtility.GetEntry((float)itm.BudgetedAmount, GetColor(), itm.ItemDescription, itm.BudgetedAmount.ToString("C"))); // } // else // { // entries.Add(EntryUtility.GetEntry((float)itm.BudgetedAmount)); // } // } // return entries.ToArray(); //} //Entry[] GetEntries(BudgetCategoryViewModel vm, CategoryChartType chartType, bool fullSize) //{ // return GetCategoryEntries(vm, chartType, fullSize); //} //Entry[] GetCategoryEntries(BudgetCategoryViewModel vm, CategoryChartType chartType, bool fullSize) //{ // var context = vm.BudgetItems; // List<Entry> entries = new List<Entry>(); // foreach (var itm in context) // { // if (fullSize) // { // entries.Add(EntryUtility.GetEntry((float)itm.BudgetedAmount, GetColor(), itm.ItemDescription, itm.BudgetedAmount.ToString("C"))); // } // else // { // entries.Add(EntryUtility.GetEntry((float)itm.BudgetedAmount)); // } // } // return entries.ToArray(); //} async Task <Entry[]> GetEntriesAsync(EasyBudgetStatusViewModel vm, bool fullSize) { Entry[] IncomeEntries = await GetIncomeEntriesAsync(vm, fullSize); Entry[] ExpensesEntries = await GetExpensesEntriesAsync(vm, fullSize); Entry[] _Entries = new Entry[IncomeEntries.Length + ExpensesEntries.Length]; Array.Copy(IncomeEntries, _Entries, IncomeEntries.Length); Array.Copy(ExpensesEntries, 0, _Entries, IncomeEntries.Length, ExpensesEntries.Length); return(_Entries); }
protected async override void OnAppearing() { base.OnAppearing(); vm = await ds.GetStatusVM(); var provider = new MicrochartsProvider <EasyBudgetStatusViewModel>(); chartIncome.Chart = await provider.GetChartAsync(vm, 1, false); chartExpenses.Chart = await provider.GetChartAsync(vm, 0, false); chartAccountTransactions.Chart = await provider.GetChartAsync(vm, 2, false); }
async Task <Entry[]> GetIncomeEntriesAsync(EasyBudgetStatusViewModel vm, bool fullSize) { var context = vm; List <Entry> entries = new List <Entry>(); var fltIncome = (float)context.vmCategories.BudgetCategories .Where(c => c.CategoryType == BudgetCategoryType.Income) .Sum(c => c.Amount); var fltIncomeActual = (float)context.vmAccounts.BankAccounts .Sum(bk => bk.AccountRegister .Where(ar => ar.ItemType == AccountRegisterItemViewModel.AccountItemType.Deposits) .Sum(d => d.ItemAmount)); Entry[] _entryArray; if (fullSize) { _entryArray = new Entry[] { EntryUtility.GetEntry(fltIncome, SKColors.LightGreen, "Budgeted", fltIncome.ToString("C")), EntryUtility.GetEntry(fltIncomeActual, SKColors.Green, "Actual", fltIncomeActual.ToString("C")) }; } else { _entryArray = new Entry[] { EntryUtility.GetEntry(fltIncome, SKColors.LightGreen, "Budgeted"), EntryUtility.GetEntry(fltIncomeActual, SKColors.Green, "Actual") }; } var _entries = await BuildEntryCollectionAsync(_entryArray); entries.AddRange(_entries); return(entries.ToArray()); }