public override IChartDataPack GetChartData() { var dataPack = new ChartDataPack(); var budgetItemsGroup = new ChartDataGroup(); budgetItemsGroup.ChartDisplayType = ChartType.Pie; budgetItemsGroup.ChartDisplayOrder = 0; foreach (var cat in this.BudgetItems.OrderBy(c => c.BudgetedAmount)) { budgetItemsGroup.ChartDataItems.Add(new ChartDataEntry() { FltValue = (float)cat.BudgetedAmount, Label = cat.ItemDescription, ValueLabel = cat.BudgetedAmount.ToString("C"), ColorCode = cat.ColorCode }); } dataPack.Charts.Add(budgetItemsGroup); return(dataPack); }
public override IChartDataPack GetChartData() { var dataPack = new ChartDataPack(); var budgetExpenseGroup = new ChartDataGroup(); budgetExpenseGroup.ChartDisplayType = ChartType.Pie; budgetExpenseGroup.ChartDisplayOrder = 0; foreach (var cat in this.BudgetCategories.Where(c => c.CategoryType == BudgetCategoryType.Expense).OrderBy(c => c.Amount)) { budgetExpenseGroup.ChartDataItems.Add(new ChartDataEntry() { FltValue = (float)cat.Amount, Label = cat.Name, ValueLabel = cat.Amount.ToString("C"), ColorCode = cat.ColorCode }); } dataPack.Charts.Add(budgetExpenseGroup); var budgetIncomeGroup = new ChartDataGroup(); budgetIncomeGroup.ChartDisplayType = ChartType.Pie; budgetIncomeGroup.ChartDisplayOrder = 1; foreach (var cat in this.BudgetCategories.Where(c => c.CategoryType == BudgetCategoryType.Income).OrderBy(c => c.Amount)) { budgetIncomeGroup.ChartDataItems.Add(new ChartDataEntry() { FltValue = (float)cat.Amount, Label = cat.Name, ValueLabel = cat.Amount.ToString("C"), ColorCode = cat.ColorCode }); } dataPack.Charts.Add(budgetIncomeGroup); return(dataPack); }
//IList<AccountRegisterItemViewModel> GetAllTransactions(int accountId) //{ // List<AccountRegisterItemViewModel> _transactions = new List<AccountRegisterItemViewModel>(); // using (UnitOfWork uow = new UnitOfWork(this.dbFilePath)) // { // var _resultsDeposits = Task.Run(() => uow.ge) // } // return _transactions; //} public override IChartDataPack GetChartData() { ChartDataPack chartPack = new ChartDataPack(); ChartDataGroup allCategorizedGroup = new ChartDataGroup(); allCategorizedGroup.ChartDisplayType = ChartType.Bar; allCategorizedGroup.ChartDisplayOrder = 0; //ChartDataGroup incomeCategorizedGroup = new ChartDataGroup(); //incomeCategorizedGroup.ChartDisplayType = ChartType.Bar; //incomeCategorizedGroup.ChartDisplayOrder = 1; //ChartDataGroup spendingCategorizedGroup = new ChartDataGroup(); //spendingCategorizedGroup.ChartDisplayType = ChartType.Bar; //spendingCategorizedGroup.ChartDisplayOrder = 2; List <List <AccountRegisterItemViewModel> > _registerVMsByCategory = new List <List <AccountRegisterItemViewModel> >(); List <AccountRegisterItemViewModel> _allDepositTransactions = new List <AccountRegisterItemViewModel>(); List <AccountRegisterItemViewModel> _allWithdrawalTransactions = new List <AccountRegisterItemViewModel>(); decimal _depositSum = _allDepositTransactions.Sum(t => t.ItemAmount); decimal _withdrawalSum = _allWithdrawalTransactions.Sum(t => t.ItemAmount); foreach (var _accountVM in this.BankAccounts) { _allDepositTransactions.AddRange(_accountVM.AccountRegister.Where(r => r.ItemType == AccountRegisterItemViewModel.AccountItemType.Deposits)); _allWithdrawalTransactions.AddRange(_accountVM.AccountRegister.Where(r => r.ItemType == AccountRegisterItemViewModel.AccountItemType.Withdrawals)); } string _colorCode = string.Empty; List <AccountRegisterItemViewModel> _tempVMList = new List <AccountRegisterItemViewModel>(); // Start with Deposits _registerVMsByCategory = new List <List <AccountRegisterItemViewModel> >(); foreach (var _regVM in _allDepositTransactions.OrderBy(t => t.ObjectColorCode)) { if (_regVM.ObjectColorCode != _colorCode) { if (_tempVMList.Count > 0) { _registerVMsByCategory.Add(_tempVMList); } _colorCode = _regVM.ObjectColorCode; _tempVMList = new List <AccountRegisterItemViewModel>(); } _tempVMList.Add(_regVM); } if (_tempVMList.Count > 0) { _registerVMsByCategory.Add(_tempVMList); } foreach (var _list in _registerVMsByCategory) { foreach (var _listItm in _list) { decimal _itmValue = _listItm.ItemAmount; ChartDataEntry _entry = new ChartDataEntry(); _entry.FltValue = (float)(_itmValue); _entry.Label = "Item Value"; _entry.ValueLabel = _itmValue.ToString("C"); _entry.ColorCode = _listItm.ObjectColorCode; allCategorizedGroup.ChartDataItems.Add(_entry); } //decimal _catValue = _list.Sum(r => r.ItemAmount); //ChartDataEntry _entry = new ChartDataEntry(); //_entry.FltValue = (float)_catValue; //_entry.Label = "Category Total"; //_entry.ColorCode = _list.First().ObjectColorCode; ////incomeCategorizedGroup.ChartDataItems.Add(_entry); //allCategorizedGroup.ChartDataItems.Add(_entry); } // and Withdrawals _registerVMsByCategory = new List <List <AccountRegisterItemViewModel> >(); foreach (var _regVM in _allWithdrawalTransactions.OrderBy(t => t.ObjectColorCode)) { if (_regVM.ObjectColorCode != _colorCode) { if (_tempVMList.Count > 0) { _registerVMsByCategory.Add(_tempVMList); } _colorCode = _regVM.ObjectColorCode; _tempVMList = new List <AccountRegisterItemViewModel>(); } _tempVMList.Add(_regVM); } if (_tempVMList.Count > 0) { _registerVMsByCategory.Add(_tempVMList); } foreach (var _list in _registerVMsByCategory) { foreach (var _listItm in _list) { decimal _itmValue = _listItm.ItemAmount; ChartDataEntry _entry = new ChartDataEntry(); _entry.FltValue = (float)(-1 * _itmValue); _entry.Label = "Item Value"; _entry.ValueLabel = _itmValue.ToString("C"); _entry.ColorCode = _listItm.ObjectColorCode; allCategorizedGroup.ChartDataItems.Add(_entry); } //decimal _catValue = _list.Sum(r => r.ItemAmount); //ChartDataEntry _entry = new ChartDataEntry(); //_entry.FltValue = (float)(-1 * _catValue); //_entry.Label = "Category Total"; //_entry.ColorCode = _list.First().ObjectColorCode; ////spendingCategorizedGroup.ChartDataItems.Add(_entry); //allCategorizedGroup.ChartDataItems.Add(_entry); } chartPack.Charts.Add(allCategorizedGroup); //chartPack.Charts.Add(incomeCategorizedGroup); //chartPack.Charts.Add(spendingCategorizedGroup); //ChartDataGroup accountBalanceGroup = new ChartDataGroup(); //accountBalanceGroup.ChartDisplayType = ChartType.Line; //accountBalanceGroup.ChartDisplayOrder = 0; //int daysInMonth = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month); //// Initialize the time-series chart with an entry for each day in the month //List<ChartDataEntry> _chartData = new List<ChartDataEntry>(); //for (int i = 0; i < daysInMonth; i++) //{ // ChartDataEntry _chartEntry = new ChartDataEntry(); // _chartEntry.ColorCode = "#4CAF50"; // _chartEntry.Label = DateTime.Now.Month.ToString().PadLeft(2, '0') + "/" + (i + 1).ToString().PadLeft(2, '0') + "/" + DateTime.Now.Year.ToString(); // _chartData.Add(_chartEntry); //} //// Find the data for the charts. We want the sum of balances for each day in the graph up to and including //// the current date. //List<AccountRegisterItemViewModel> _masterRegister = new List<AccountRegisterItemViewModel>(); //foreach(BankAccountViewModel _accountVM in this.BankAccounts) //{ // _masterRegister.AddRange(_accountVM.AccountRegister); //} //foreach(ChartDataEntry _chartEntry in _chartData) //{ // int idx = _chartData.IndexOf(_chartEntry); // int day = idx + 1; // string dateToParse = DateTime.Now.Month.ToString() + "/" + day.ToString() + "/" + DateTime.Now.Year.ToString(); // DateTime _testDate = DateTime.Parse(dateToParse); // if (_masterRegister.Any(itm => itm.ItemDate.Date ==_testDate.Date)) // { // decimal _maxEndingBalance = _masterRegister.Where(itm => itm.ItemDate.Date == _testDate.Date).Max(r => r.EndingBalance); // _chartEntry.FltValue = (float)_maxEndingBalance; // _chartEntry.ValueLabel = _maxEndingBalance.ToString("C"); // } // else // { // if (_masterRegister.Count() == 0) // { // _chartEntry.FltValue = (float)this.BankAccounts.Max(b => b.CurrentBalance); // _chartEntry.ValueLabel = _chartEntry.FltValue.ToString("C"); // } // else // { // //_chartEntry.FltValue = (float)0M; // //_chartEntry.ValueLabel = string.Format("{0:C}", 0); // if (day <= DateTime.Now.Day) // { // _chartEntry.FltValue = idx > 0 ? _chartData[idx - 1].FltValue : (float)0M; // _chartEntry.ValueLabel = _chartEntry.FltValue.ToString("C"); // } // else // { // _chartEntry.FltValue = (float)0M; // _chartEntry.ValueLabel = _chartEntry.FltValue.ToString("C"); // } // } // } // accountBalanceGroup.ChartDataItems.Add(_chartEntry); //} //chartPack.Charts.Add(accountBalanceGroup); return(chartPack); }
public override IChartDataPack GetChartData() { var dataPack = new ChartDataPack(); // Income Group Chart Data //var budgetIncomeGroup = new ChartDataGroup(); //budgetIncomeGroup.ChartDisplayType = ChartType.Pie; //budgetIncomeGroup.ChartDisplayOrder = 0; //// Construct and build the data points //// Collect the income values //var fltIncome = (float)this.vmCategories.BudgetCategories // .Where(c => c.CategoryType == BudgetCategoryType.Income) // .Sum(c => c.Amount); //var fltIncomeActual = (float)this.vmAccounts.BankAccounts // .Sum(bk => bk.AccountRegister // .Where(ar => ar.ItemType == AccountRegisterItemViewModel.AccountItemType.Deposits) // .Sum(d => d.ItemAmount)); //string incomeBudgetColor = "#4CAF50"; //string incomeActualColor = "#81C784"; ////if (fltIncomeActual >= fltIncome) // //incomeActualColor = "#E0E0E0"; //float fltIncomeValue = fltIncome > fltIncomeActual ? fltIncome - fltIncomeActual : 0; //var budgetIncomeEntry = new ChartDataEntry() //{ // FltValue = fltIncomeValue, // Label = "Budgeted", // ValueLabel = fltIncome.ToString("C"), // ColorCode = incomeBudgetColor //}; //var actualIncomeEntry = new ChartDataEntry() //{ // FltValue = fltIncomeActual, // Label = "Actual", // ValueLabel = fltIncomeActual.ToString("C"), // ColorCode = incomeActualColor //}; //budgetIncomeGroup.ChartDataItems.Add(actualIncomeEntry); //budgetIncomeGroup.ChartDataItems.Add(budgetIncomeEntry); //// Expense Group Chart Data //var budgetExpenseGroup = new ChartDataGroup(); //budgetExpenseGroup.ChartDataItems = new List<ChartDataEntry>(); //budgetExpenseGroup.ChartDisplayType = ChartType.Pie; //budgetExpenseGroup.ChartDisplayOrder = 1; //// Construct and build the data points //// Collect the expense values //var fltExpenses = (float)this.vmCategories.BudgetCategories // .Where(c => c.CategoryType == Models.BudgetCategoryType.Expense) // .Sum(c => c.Amount); //var fltExpenseActual = (float)this.vmAccounts.BankAccounts // .Sum(bk => bk.AccountRegister // .Where(ar => ar.ItemType == AccountRegisterItemViewModel.AccountItemType.Withdrawals) // .Sum(d => d.ItemAmount)); ////string expenseBudgetColor = "#F44336"; //string expenseBudgetColor = "#F48FB1"; //string expenseActualColor = "#81C784"; //if (fltExpenseActual >= fltExpenses) // expenseActualColor = "#F44336"; // //expenseActualColor = "#E57373"; //float fltExpenseValue = fltExpenses > fltExpenseActual ? fltExpenses - fltExpenseActual : 0; //var budgetExpenseEntry = new ChartDataEntry() //{ // FltValue = fltExpenseValue, // Label = "Budgeted", // ValueLabel = fltExpenses.ToString("C"), // ColorCode = expenseBudgetColor //}; //var actualExpenseEntry = new ChartDataEntry() //{ // FltValue = fltExpenseActual, // Label = "Actual", // ValueLabel = fltExpenseActual.ToString("C"), // ColorCode = expenseActualColor //}; //budgetExpenseGroup.ChartDataItems.Add(actualExpenseEntry); //budgetExpenseGroup.ChartDataItems.Add(budgetExpenseEntry); //dataPack.Charts.Add(budgetIncomeGroup); //dataPack.Charts.Add(budgetExpenseGroup); var budgetCategoriesDataPack = this.vmCategories.ChartDataPack; foreach (ChartDataGroup _grp in budgetCategoriesDataPack.Charts) { dataPack.Charts.Add(_grp); } var accountsDataPack = this.vmAccounts.ChartDataPack; dataPack.Charts.Add(accountsDataPack.Charts.First()); //var accountsStatusGroup = new ChartDataGroup(); //accountsStatusGroup.ChartDataItems = new List<ChartDataEntry>(); //accountsStatusGroup.ChartDisplayType = ChartType.Line; //accountsStatusGroup.ChartDisplayOrder = 1; // Construct and build the data points //dataPack.Charts.Add(accountsStatusGroup); return(dataPack); }
public override IChartDataPack GetChartData() { ChartDataPack chartPack = new ChartDataPack(); ChartDataGroup allCategorizedGroup = new ChartDataGroup(); allCategorizedGroup.ChartDisplayOrder = 0; allCategorizedGroup.ChartDisplayType = ChartType.Bar; List <List <AccountRegisterItemViewModel> > _registerVMsByCategory = new List <List <AccountRegisterItemViewModel> >(); List <AccountRegisterItemViewModel> _allDepositTransactions = new List <AccountRegisterItemViewModel>(); List <AccountRegisterItemViewModel> _allWithdrawalTransactions = new List <AccountRegisterItemViewModel>(); decimal _depositSum = _allDepositTransactions.Sum(t => t.ItemAmount); decimal _withdrawalSum = _allWithdrawalTransactions.Sum(t => t.ItemAmount); _allDepositTransactions.AddRange(this.AccountRegister.ToList().Where(r => r.ItemType == AccountRegisterItemViewModel.AccountItemType.Deposits)); _allWithdrawalTransactions.AddRange(this.AccountRegister.ToList().Where(r => r.ItemType == AccountRegisterItemViewModel.AccountItemType.Withdrawals)); string _colorCode = string.Empty; List <AccountRegisterItemViewModel> _tempVMList = new List <AccountRegisterItemViewModel>(); // Start with Deposits _registerVMsByCategory = new List <List <AccountRegisterItemViewModel> >(); foreach (var _regVM in _allDepositTransactions.OrderBy(t => t.ItemDate)) { _tempVMList.Add(_regVM); } foreach (var _regVM in _allWithdrawalTransactions.OrderBy(t => t.ItemDate)) { _tempVMList.Add(_regVM); } //if (_tempVMList.Count > 0) //{ // _registerVMsByCategory.Add(_tempVMList); //} //foreach (var _list in _registerVMsByCategory) //{ // foreach (var _listItm in _list) // { // decimal _itmValue = _listItm.ItemAmount; // ChartDataEntry _entry = new ChartDataEntry(); // _entry.FltValue = (float)(_itmValue); // _entry.Label = "Item Value"; // _entry.ValueLabel = _itmValue.ToString("C"); // _entry.ColorCode = _listItm.ObjectColorCode; // allCategorizedGroup.ChartDataItems.Add(_entry); // } // //decimal _catValue = _list.Sum(r => r.ItemAmount); // //ChartDataEntry _entry = new ChartDataEntry(); // //_entry.FltValue = (float)_catValue; // //_entry.Label = "Deposit Value"; // //_entry.ValueLabel = _catValue.ToString("C"); // //_entry.ColorCode = _list.First().ObjectColorCode; // ////incomeCategorizedGroup.ChartDataItems.Add(_entry); // //allCategorizedGroup.ChartDataItems.Add(_entry); //} foreach (var _itm in _tempVMList.OrderBy(vm => vm.ItemDate)) { decimal _itmValue = _itm.ItemAmount; ChartDataEntry _entry = new ChartDataEntry(); _entry.FltValue = _itm.ItemType == AccountRegisterItemViewModel.AccountItemType.Deposits ? (float)(_itmValue) : (float)(-1 * _itmValue); _entry.Label = "Item Value"; _entry.ValueLabel = _itmValue.ToString("C"); _entry.ColorCode = _itm.ObjectColorCode; allCategorizedGroup.ChartDataItems.Add(_entry); } // and Withdrawals //_registerVMsByCategory = new List<List<AccountRegisterItemViewModel>>(); //foreach (var _regVM in _allWithdrawalTransactions.OrderBy(t => t.ItemDate)) //{ // //if (_regVM.ObjectColorCode != _colorCode) // //{ // // if (_tempVMList.Count > 0) // // { // // _registerVMsByCategory.Add(_tempVMList); // // } // // _colorCode = _regVM.ObjectColorCode; // // _tempVMList = new List<AccountRegisterItemViewModel>(); // //} // _tempVMList.Add(_regVM); //} //if (_tempVMList.Count > 0) //{ // _registerVMsByCategory.Add(_tempVMList); //} //foreach (var _list in _registerVMsByCategory) //{ // foreach(var _listItm in _list.OrderBy(vm => vm.ItemDate)) // { // decimal _itmValue = _listItm.ItemAmount; // ChartDataEntry _entry = new ChartDataEntry(); // _entry.FltValue = (float)(-1 * _itmValue); // _entry.Label = "Item Value"; // _entry.ValueLabel = _itmValue.ToString("C"); // _entry.ColorCode = _listItm.ObjectColorCode; // allCategorizedGroup.ChartDataItems.Add(_entry); // } // //decimal _catValue = _list.Sum(r => r.ItemAmount); // //ChartDataEntry _entry = new ChartDataEntry(); // //_entry.FltValue = (float)(-1 * _catValue); // //_entry.Label = "Category Value"; // //_entry.ValueLabel = // //_entry.ColorCode = _list.First().ObjectColorCode; // ////spendingCategorizedGroup.ChartDataItems.Add(_entry); // //allCategorizedGroup.ChartDataItems.Add(_entry); //} chartPack.Charts.Add(allCategorizedGroup); //List<List<AccountRegisterItemViewModel>> _registerVMsByCategory = new List<List<AccountRegisterItemViewModel>>(); //string _colorCode = string.Empty; //List<AccountRegisterItemViewModel> _tempVMList = new List<AccountRegisterItemViewModel>(); //foreach (var _regVM in this.AccountRegister.OrderBy(t => t.ObjectColorCode)) //{ // if (_regVM.ObjectColorCode != _colorCode) // { // if (_tempVMList.Count > 0) // { // _registerVMsByCategory.Add(_tempVMList); // } // _colorCode = _regVM.ObjectColorCode; // _tempVMList = new List<AccountRegisterItemViewModel>(); // } // _tempVMList.Add(_regVM); //} //if (_tempVMList.Count > 0) //{ // _registerVMsByCategory.Add(_tempVMList); //} //foreach (var _list in _registerVMsByCategory) //{ // decimal _catValue = _list.Sum(r => r.ItemAmount); // ChartDataEntry _entry = new ChartDataEntry(); // _entry.FltValue = (float)_catValue; // _entry.Label = "Category Total"; // _entry.ColorCode = _list.First().ObjectColorCode; // chartByCategoryGroup.ChartDataItems.Add(_entry); //} //chartPack.Charts.Add(chartByCategoryGroup); return(chartPack); }