예제 #1
0
        //
        // 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
        }
예제 #2
0
        /* 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);
        }