public ActionResult AssessmentDetail(TIRDetailReportParameter detailReportParameter) { try { HeirarchicalTIRDetailModel model = new HeirarchicalTIRDetailModel(); InitializeReportMetadata(model, detailReportParameter); model.ReportType = detailReportParameter.AssessmentTypeDesc; model.ReportTemplateId = detailReportParameter.ReportTemplateId; ViewBag.ShowPercentile = detailReportParameter.ReportTemplateId != EDS.Constants.SystemParameter.ReportTemplateType.FandPType; ViewBag.ShowGrowth = detailReportParameter.ReportTemplateId == EDS.Constants.SystemParameter.ReportTemplateType.FandPType; return(View("HeirarchicalTIRDetail", model)); } catch (Exception ex) { Logging log = new Logging(); log.LogException(ex); return(View("GeneralError")); } }
private void SetDetailReportUrlData(TIRDetailReportParameter detailReportParameter) { ViewBag.Subject = detailReportParameter.Subject; ViewBag.Year = detailReportParameter.Year; ViewBag.AssessmentTypeDesc = detailReportParameter.AssessmentTypeDesc; ViewBag.Teacher = detailReportParameter.Teacher; ViewBag.ClassID = detailReportParameter.ClassId; ViewBag.Grade = detailReportParameter.Grade; ViewBag.ViewScaledScore = detailReportParameter.ViewScaledScore; ViewBag.SummaryCount = detailReportParameter.SummaryCount + 1; ViewBag.Race = detailReportParameter.Race; ViewBag.Gender = detailReportParameter.Gender; ViewBag.FrlIndicator = detailReportParameter.FrlIndicator; ViewBag.IEPIndicator = detailReportParameter.IEPIndicator; ViewBag.LEPIndicator = detailReportParameter.LEPIndicator; ViewBag.Hispanic = detailReportParameter.Hispanic; ViewBag.AssessmentTypeId = detailReportParameter.AssessmentTypeId; ViewBag.ReportTemplateId = detailReportParameter.ReportTemplateId; }
private void AssignMePercentForAssessment(HeirarchicalScoreData scoreData, ModelServices service, SiteUser su, TIRDetailReportParameter detailReportParameter, ref List <AssessmentMEPerc> AssessmentMePercentages) { if (scoreData != null) { detailReportParameter.AssessmentTypeId = scoreData.AssessmentTypeId; var mePercentForAssessment = service.GetMEPercentForAssessment(su.Districts.First().Id, scoreData.AssessmentId, detailReportParameter); AssessmentMePercentages.Add(mePercentForAssessment); } }
private void InitializeReportMetadata(HeirarchicalTIRDetailModel model, TIRDetailReportParameter detailReportParameter) { base.SetNavigationLinksUrl(); int decimalPlace = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["SiteDecimalPlace"].ToString()); SiteUser su = ((SiteUser)Session["SiteUser"]); ModelServices service = new ModelServices(); model.SchoolYear = service.SchoolYearDescriptionByYearId(detailReportParameter.Year); SetDetailReportUrlData(detailReportParameter); UpdateReportTemplateConfigurations(service, detailReportParameter.ReportTemplateId); ViewBag.SchoolTermList = service.GetSchoolTerms(detailReportParameter); var details = service.GetHeirarchicalDetailReport(su.Districts.First().Id, detailReportParameter); model.details = details; model.Subject = service.GetSubjectDescriptionById(detailReportParameter.Subject); model.SubjectId = detailReportParameter.Subject; model.SchoolYearId = detailReportParameter.Year; model.AssessmentTypeId = detailReportParameter.AssessmentTypeId; model.CameFromTitle = detailReportParameter.CameFromTitle; if (details.Count > 0) { model.AssessmentList = new List <AssessmentMEPerc>(); var firstTirDetail = details[0]; var schoolTermId = firstTirDetail.SchoolTermId; detailReportParameter.InputTermId = schoolTermId; foreach (var score in firstTirDetail.ScoreDataCollection) { AssignMePercentForAssessment(score, service, su, detailReportParameter, ref model.AssessmentList); } service.IsChildAssessmentsExists(model.AssessmentList); List <int> studentCounts = studentCounts = new List <int>(); List <decimal> impactSums = new List <decimal>(); List <decimal> avgImpacts = new List <decimal>(); List <int> countOfMeetOrExceed = new List <int>(); for (int i = 0; i < model.details[0].ScoreDataCollection.Count; i++) { studentCounts.Add(model.details.Count(d => d.ScoreDataCollection[i].Impact != null)); impactSums.Add(model.details.Sum(d => d.ScoreDataCollection[i].Impact.GetValueOrDefault())); countOfMeetOrExceed.Add(model.details.Where(d => d.ScoreDataCollection[i].Impact >= -2).Count()); if (studentCounts[i] > 0) { avgImpacts.Add(Math.Round(impactSums[i] / studentCounts[i], decimalPlace)); } else { avgImpacts.Add(0); } } ViewBag.avgImpacts = avgImpacts; } var filterParameter = new FilterParameter { ClassId = detailReportParameter.ClassId, Teacher = detailReportParameter.Teacher, Year = detailReportParameter.Year, Race = detailReportParameter.Race, Gender = detailReportParameter.Gender, FrlIndicator = detailReportParameter.FrlIndicator, IEPIndicator = detailReportParameter.IEPIndicator, LEPIndicator = detailReportParameter.LEPIndicator, Hispanic = detailReportParameter.Hispanic, SchoolYear = model.SchoolYear }; var reportFilterViewModel = ReportsFilterHelper.PopulateReportFilterViewModel(filterParameter, service, su); ViewBag.ReportFilters = reportFilterViewModel; }
private void InitializeReportMetadata(TIRDetailModel model, TIRDetailReportParameter detailReportParameter) { base.SetNavigationLinksUrl(); int decimalPlace = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["SiteDecimalPlace"].ToString()); SiteUser su = ((SiteUser)Session["SiteUser"]); ModelServices service = new ModelServices(); model.SchoolYear = service.SchoolYearDescriptionByYearId(detailReportParameter.Year); SetDetailReportUrlData(detailReportParameter); UpdateReportTemplateConfigurations(service, detailReportParameter.ReportTemplateId); model.AssessmentList = service.GetDetailReportAssessmentList(su.Districts.First().Id, detailReportParameter); var list = (model.AssessmentList).Select(x => x.AssessmentDesc).ToList(); var details = service.GetDetailReport(list, su.Districts.First().Id, detailReportParameter); model.details = details; model.Subject = service.GetSubjectDescriptionById(detailReportParameter.Subject); int[] studentCounts = new int[5]; decimal[] impactSums = new decimal[5]; decimal[] avgImpacts = new decimal[5]; int[] countOfMeetOrExceed = new int[5]; decimal[] percOfMeetOrExceed = new decimal[5]; //TODO: Need to handle null check here if no data found in model.details list it will give object refrence not found error. studentCounts[0] = model.details.Count(d => d.ScoreData1.Impact != null); studentCounts[1] = model.details.Count(d => d.ScoreData2.Impact != null); studentCounts[2] = model.details.Count(d => d.ScoreData3.Impact != null); studentCounts[3] = model.details.Count(d => d.ScoreData4.Impact != null); studentCounts[4] = model.details.Count(d => d.ScoreData5.Impact != null); impactSums[0] = model.details.Sum(d => d.ScoreData1.Impact.GetValueOrDefault()); impactSums[1] = model.details.Sum(d => d.ScoreData2.Impact.GetValueOrDefault()); impactSums[2] = model.details.Sum(d => d.ScoreData3.Impact.GetValueOrDefault()); impactSums[3] = model.details.Sum(d => d.ScoreData4.Impact.GetValueOrDefault()); impactSums[4] = model.details.Sum(d => d.ScoreData5.Impact.GetValueOrDefault()); for (int i = 0; i < studentCounts.Length; i++) { if (studentCounts[i] > 0) { avgImpacts[i] = Math.Round(impactSums[i] / studentCounts[i], decimalPlace); } } countOfMeetOrExceed[0] = model.details.Where(tirDetail => tirDetail.ScoreData1.Impact >= -2).Count(); countOfMeetOrExceed[1] = model.details.Where(tirDetail => tirDetail.ScoreData2.Impact >= -2).Count(); countOfMeetOrExceed[2] = model.details.Where(tirDetail => tirDetail.ScoreData3.Impact >= -2).Count(); countOfMeetOrExceed[3] = model.details.Where(tirDetail => tirDetail.ScoreData4.Impact >= -2).Count(); countOfMeetOrExceed[4] = model.details.Where(tirDetail => tirDetail.ScoreData5.Impact >= -2).Count(); service.IsChildAssessmentsExists(model.AssessmentList); for (int i = 0; i < model.AssessmentList.Count; i++) { if (studentCounts[i] > 0) { percOfMeetOrExceed[i] = GetPerOfMeetValue(countOfMeetOrExceed[i], studentCounts[i], true); } } ViewBag.percOfMeetOrExceed = percOfMeetOrExceed; ViewBag.studentCounts = studentCounts; ViewBag.impactSums = impactSums; ViewBag.avgImpacts = avgImpacts; var filterParameter = new FilterParameter { ClassId = detailReportParameter.ClassId, Teacher = detailReportParameter.Teacher, Year = detailReportParameter.Year, Race = detailReportParameter.Race, Gender = detailReportParameter.Gender, FrlIndicator = detailReportParameter.FrlIndicator, IEPIndicator = detailReportParameter.IEPIndicator, LEPIndicator = detailReportParameter.LEPIndicator, Hispanic = detailReportParameter.Hispanic, SchoolYear = model.SchoolYear }; var reportFilterViewModel = ReportsFilterHelper.PopulateReportFilterViewModel(filterParameter, service, su); ViewBag.ReportFilters = reportFilterViewModel; }