public JsonResult GetSpendingChartData() { //Setting up (Instantiating) data structures var barChartVM = new BarChartVM(); var actualChartDataSet = new BarChartDataSet(); var targetChartDataSet = new BarChartDataSet(); var hhId = User.Identity.GetHouseholdId(); //Select first seven of the latest var categories = db.Categories.Where(c => c.HouseholdId == hhId && c.DebitCredit == false).ToList(); //False 'DebitCredit' indicates a Debit foreach (var cat in categories) { var tTypeId = db.TransactionTypes.FirstOrDefault(t => t.Type == "Withdrawal").Id; var totalActual = cat.CategoryItems.SelectMany(c => c.Transactions).Where(t => t.TransactionTypeId == tTypeId).Where(t => t.Created.Month == DateTime.Now.Month).Select(t => t.Amount).Sum(); var totalTarget = cat.TargetAmount; //Adding actual/target amounts to datasets actualChartDataSet.data.Add(totalActual); targetChartDataSet.data.Add(totalTarget); //Adding chart labels to ViewModel barChartVM.labels.Add(cat.Name); } //Adding 'Actual Spending' data to the open dataset actualChartDataSet.label = "Actual Spending"; actualChartDataSet.backgroundColor = "rgba(60,141,188,0.9)"; actualChartDataSet.borderColor = "rgba(60,141,188,0.8)"; actualChartDataSet.pointRadius = false; actualChartDataSet.pointColor = "#208cff"; actualChartDataSet.pointStrokeColor = "#208cff"; actualChartDataSet.pointHighlightFill = "#208cff"; actualChartDataSet.pointHighlightStroke = "#208cff"; //Adding 'Target Spending' data to the closed dataset targetChartDataSet.label = "Target Spending"; targetChartDataSet.backgroundColor = "rgba(210, 214, 222, 1)"; targetChartDataSet.borderColor = "rgba(210, 214, 222, 1)"; targetChartDataSet.pointRadius = false; targetChartDataSet.pointColor = "rgba(210, 214, 222, 1)"; targetChartDataSet.pointStrokeColor = "#c1c7d1"; targetChartDataSet.pointHighlightFill = "#fff"; targetChartDataSet.pointHighlightStroke = "rgba(220,220,220,1)"; //Adding datasets to ViewModel barChartVM.datasets.Add(actualChartDataSet); barChartVM.datasets.Add(targetChartDataSet); //Sending all data via ViewModel to the View return(Json(barChartVM, JsonRequestBehavior.AllowGet)); }
public UserControl CreateElement(ReportElementVM element) { UserControl returningUserControl = null; string type = element.Type; if (type.Equals("table")) { TableUserControl table = new TableUserControl(); TableVM tableVm = new TableVM(element); table.DataContext = tableVm; returningUserControl = table; } else if (type.Equals("linechart")) { LineChartUserControl lineChart = new LineChartUserControl(); LineChartVM lineChartVm = new LineChartVM(element); lineChart.DataContext = lineChartVm; returningUserControl = lineChart; } else if (type.Equals("piechart")) { PieChartUserControl pieChart = new PieChartUserControl(); PieChartVM pieChartVm = new PieChartVM(element); pieChart.DataContext = pieChartVm; returningUserControl = pieChart; } else if (type.Equals("barchart")) { BarChartUserControl barChart = new BarChartUserControl(); BarChartVM barChartVm = new BarChartVM(element); barChart.DataContext = barChartVm; returningUserControl = barChart; } else if (type.Equals("image")) { ImageUserControl image = new ImageUserControl(); ImageVM imageVm = new ImageVM(element); image.DataContext = imageVm; returningUserControl = image; } else if (type.Equals("text")) { TextUserControl text = new TextUserControl(); TextVM textVM = new TextVM(element); text.DataContext = textVM; returningUserControl = text; } return(returningUserControl); }
private BarChartVM GetBarChartDataForClient(int?clientID) { var orders = _context.Orders.Include(o => o.AddedUser).Include(o => o.Client).Include(o => o.DeliveryType).Include(o => o.Finishing).Include(o => o.Format).Include(o => o.Machine).Include(o => o.PaperType).Include(o => o.PaperWeight).Include(o => o.PaymentType).Include(o => o.PostPress).Include(o => o.PrintColor).Include(o => o.Product).Include(o => o.ProductionStage).Include(o => o.SheetSize).Include(o => o.UpdatedUser).Include(o => o.VatRate).Include(o => o.PrintUser).Where(x => x.ClientID == clientID); var products = _context.Products.ToList(); var barChartData = new BarChartVM(); var labels = new List <string>(); barChartData.labels = labels; var datasets = new List <BarChartChildVM>(); var childModel = new BarChartChildVM(); childModel.label = "Ilość zamówień"; childModel.backgroundColor = @"rgba(58, 210, 159, 0.2)"; childModel.borderColor = "#3ad29f"; childModel.borderWidth = 1; childModel.hoverBackgroundColor = @"rgba(58, 210, 159, 0.8)"; childModel.hoverBorderColor = "#3ad29f"; var dataList = new List <int>(); foreach (Product p in products) { labels.Add(p.Name); dataList.Add(orders.Where(x => x.ProductID == p.ProductID).Count()); } childModel.data = dataList; datasets.Add(childModel); barChartData.datasets = datasets; return(barChartData); }
public async Task <List <BarChartVM> > GetBar() { // total feedback pada title var getTitle = await _context.Feedbacks .Include("Question") .Include(x => x.Question.Training) .GroupBy(grup => grup.Question.Training.Title) .Select(y => new PieChartVM { Title = y.Key, Total = y.Count() }) .ToListAsync(); if (getTitle.Count == 0) { return(null); } List <BarChartVM> list = new List <BarChartVM>(); var getCount5 = 0.0; var getCount4 = 0.0; var getCount3 = 0.0; var getCount2 = 0.0; var getCount1 = 0.0; foreach (var item in getTitle) { var getLengthTitle = await _context.Feedbacks .Include("Question") .Include(x => x.Question.Training) .Where(x => x.Question.Training.Title == item.Title) .ToListAsync(); foreach (var item2 in getLengthTitle) { if (item2.Rate > 4.0) { getCount5++; } else if (item2.Rate > 3.0) { getCount4++; } else if (item2.Rate > 2.0) { getCount3++; } else if (item2.Rate > 1.0) { getCount2++; } else if (item2.Rate == 1.0) { getCount1++; } } var top = new BarChartVM() { Title = item.Title, star1 = getCount5, star2 = getCount4, star3 = getCount3, star4 = getCount2, star5 = getCount1, }; list.Add(top); } return(list); }