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); }