Exemple #1
0
        public FirstPage GetDashboard()
        {
            int assessmentId = Auth.AssessmentForUser();

            FirstPage rval = null;

            using (CSET_Context context = new CSET_Context())
            {
                var results = new FirstPageMultiResult();
                context.LoadStoredProc("[usp_GetFirstPage]")
                .WithSqlParam("assessment_id", assessmentId)
                .ExecuteStoredProc((handler) =>
                {
                    results.Result1 = handler.ReadToList <GetCombinedOveralls>().ToList();
                    handler.NextResult();
                    results.Result2 = handler.ReadToList <usp_getRankedCategories>().ToList();
                });



                if (results.Count >= 2)
                {
                    // for the compliance graph
                    List <Tuple <string, double> > compliance = new List <Tuple <string, double> >();

                    ChartData stand = null;
                    ChartData comp  = null;


                    foreach (GetCombinedOveralls c in results.Result1)
                    {
                        string mode = this.GetAssessmentMode(assessmentId);

                        string label = c.StatType;

                        if (c.StatType == "Components")
                        {
                            comp = TransformToChart(c);
                        }

                        if ((c.StatType == "Questions" && mode == "Q") ||
                            (c.StatType == "Requirement" && mode == "R"))
                        {
                            stand = TransformToChart(c);
                            label = stand.label;
                        }


                        if ((c.StatType.ToLower() == "overall") ||
                            (c.StatType.ToLower() == "components"))
                        {
                            compliance.Add(new Tuple <string, double>(c.StatType, c.Value));
                        }
                        else if ((c.StatType.ToLower() == "questions" && mode == "Q") ||
                                 (c.StatType.ToLower() == "requirement" && mode == "R"))
                        {
                            // Questions or Requirements are included only if we are in that 'mode', renamed as 'Standards'
                            compliance.Add(new Tuple <string, double>("Standards", c.Value));
                        }
                    }

                    ChartData overallBars = new ChartData()
                    {
                        backgroundColor = "red",
                        borderWidth     = "1",
                        label           = "overalls"
                    };

                    // order the compliance elements for display
                    var complianceOrdered = new List <Tuple <string, double> >();
                    complianceOrdered.Add(compliance.First(x => x.Item1 == "Overall"));
                    complianceOrdered.Add(compliance.First(x => x.Item1 == "Standards"));
                    complianceOrdered.Add(compliance.First(x => x.Item1 == "Components"));
                    foreach (var j in complianceOrdered)
                    {
                        overallBars.Labels.Add(j.Item1);
                        overallBars.data.Add(j.Item2);
                    }


                    ChartData chartData = new ChartData();

                    foreach (usp_getRankedCategories c in results.Result2.Take(5))
                    {
                        chartData.data.Add((double)(c.prc ?? 0.0M));
                        chartData.Labels.Add(c.Question_Group_Heading);
                    }


                    rval = new FirstPage()
                    {
                        OverallBars         = overallBars,
                        StandardsSummaryPie = stand,
                        ComponentSummaryPie = comp,
                        RedBars             = chartData
                    };
                }
            }

            return(rval);
        }
        public FirstPage GetDashboard()
        {
            int assessmentId = Auth.AssessmentForUser();

            FirstPage rval = null;

            using (CSET_Context context = new CSET_Context())
            {
                var results = new FirstPageMultiResult();
                context.LoadStoredProc("[dbo].[usp_GetFirstPage]")
                .WithSqlParam("assessment_id", assessmentId)
                .ExecuteStoredProc((handler) =>
                {
                    results.Result1 = handler.ReadToList <GetCombinedOveralls>().ToList();
                    handler.NextResult();
                    results.Result2 = handler.ReadToList <usp_getRankedCategories>().ToList();
                });



                if (results.Count >= 2)
                {
                    List <double> data   = new List <double>();
                    List <String> labels = new List <String>();
                    ChartData     stand  = null;
                    ChartData     comp   = null;
                    foreach (GetCombinedOveralls c in results.Result1)
                    {
                        // Questions or Requirements are included only if we are in that 'mode'
                        // Do not include 'Framework' entry.
                        string mode = this.GetAssessmentMode(assessmentId);
                        if ((c.StatType.ToLower() == "questions" && mode != "Q") ||
                            (c.StatType.ToLower() == "requirement" && mode != "R") ||
                            c.StatType.ToLower() == "framework")
                        {
                            // do not include the label and data
                        }
                        else
                        {
                            labels.Add(c.StatType);
                            data.Add(c.Value);
                        }

                        if (c.StatType == "Components")
                        {
                            comp = transformToChart(c);
                        }

                        if ((c.StatType == "Questions" && mode == "Q") ||
                            (c.StatType == "Requirement" && mode == "R"))
                        {
                            stand = transformToChart(c);
                        }
                    }
                    ChartData overallBars = new ChartData()
                    {
                        backgroundColor = "red",
                        borderWidth     = "1",
                        label           = "overalls",
                        Labels          = labels,
                        data            = data
                    };

                    ChartData red = new ChartData();

                    int rcount = 0;
                    foreach (usp_getRankedCategories c in results.Result2)
                    {
                        if (rcount < 5)
                        {
                            red.data.Add((double)(c.prc ?? 0.0M));
                            red.Labels.Add(c.Question_Group_Heading);
                        }
                        else
                        {
                            break;
                        }
                        rcount++;
                    }


                    rval = new FirstPage()
                    {
                        OverallBars         = overallBars,
                        ComponentSummaryPie = comp,
                        StandardsSummaryPie = stand,
                        RedBars             = red
                    };
                }
            }

            return(rval);
        }