// // GET: /Technician/ /*Displays menu and graph*/ public ActionResult Index() { string username = User.Identity.Name; Technician technician = db.Technicians.SingleOrDefault(s => s.UserProfile.UserName == username); TechnicianOrderOverview viewModel = new TechnicianOrderOverview(); // view model created to show extra information viewModel.Technician = technician; // pass technician object to viewmodel object // find out how many people did not collect orders despite being notified*/ var ordersNotCollected = from o in db.Orders where o.StudentIsNotified == true && o.IsCollected == false // find the notified orders select o; viewModel.OrdersNotCollected = ordersNotCollected.Count(); // find out how many orders the supervisor needs to be order on Onecall var ordersWhichNeedOrdering = from o in db.Orders where o.IsOrdered == false && o.IsApproved == true select o; viewModel.OrdersWaitingToBeOrdered = ordersWhichNeedOrdering.Count(); // Find how many students need to be notified that their order had been delivered var ordersNotNotfied = from o in db.Orders where o.StudentIsNotified == false && o.IsOrdered == true // find the notified orders select o; viewModel.StudentsWhoNeedToBeNotified = ordersNotNotfied.Count(); viewModel = PieChartForOrdersOverview(viewModel); // use method and use viewmodel object. return(View(viewModel)); // send to view }
/* Method to create piechart for dashboard*/ private TechnicianOrderOverview PieChartForOrdersOverview(TechnicianOrderOverview viewModel) { Highcharts pieChartOrders = new Highcharts("pieChartOrders") .InitChart(new Chart { PlotShadow = false, Width = 500, Height = 500 }) // set size parameters .SetTitle(new Title { Text = "Orders Overview" }) // set piechart title .SetPlotOptions(new PlotOptions // set the plotting options { Pie = new PlotOptionsPie { AllowPointSelect = true, Cursor = Cursors.Pointer, DataLabels = new PlotOptionsPieDataLabels { Color = ColorTranslator.FromHtml("#000000"), ConnectorColor = ColorTranslator.FromHtml("#000000"), } } }) .SetSeries(new Series // set series options { Type = ChartTypes.Pie, Name = "Overview", Data = new Data(new object[] { new DotNet.Highcharts.Options.Point { Name = "Orders Waiting To Be Ordered", // set title slice Y = (Double)viewModel.OrdersWaitingToBeOrdered, Selected = true, Color = Color.LightGreen }, new DotNet.Highcharts.Options.Point { Name = "Orders Not Collected By Students", // set title slice Y = (Double)viewModel.OrdersNotCollected, Sliced = true, Color = Color.LightBlue, Selected = true }, new DotNet.Highcharts.Options.Point { Name = "Students Who Need To Be Notified", // set title of slice Y = (Double)viewModel.StudentsWhoNeedToBeNotified, Sliced = true, Color = Color.Orange, Selected = true }, }) }); viewModel.PieChart = pieChartOrders; // pass to viewmodel return(viewModel); }