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); } }
/// <summary> /// GetDetailReport is used to get detail report data. /// </summary> /// <param name="assessmentTypeId"></param> /// <param name="assessmentList"></param> /// <param name="districtId"></param> /// <param name="detailReportParameter"></param> /// <returns></returns> internal List<HeirarchicalTIRDetail> GetHeirarchicalDetailReport(int districtId, TIRDetailReportParameter detailReportParameter) { //int horizontalPageIndex = 0; List<HeirarchicalTIRDetail> results = new List<HeirarchicalTIRDetail>(); SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString); connection.Open(); SqlCommand command = new SqlCommand("spGetHeirarchicalTeacherImpactDetail", connection); command.CommandType = System.Data.CommandType.StoredProcedure; command.Parameters.Add(new SqlParameter("@SubjectId", detailReportParameter.Subject)); command.Parameters.Add(new SqlParameter("@SchoolYearId", detailReportParameter.Year)); command.Parameters.Add(new SqlParameter("@AssessmentTypeId", detailReportParameter.AssessmentTypeId)); command.Parameters.Add(new SqlParameter("@TeacherId", detailReportParameter.Teacher)); command.Parameters.Add(new SqlParameter("@GradeLevel", detailReportParameter.Grade)); command.Parameters.Add(new SqlParameter("@ViewScaledScore", detailReportParameter.ViewScaledScore)); command.Parameters.Add(new SqlParameter("@ClassID", detailReportParameter.ClassId)); command.Parameters.Add(new SqlParameter("@DistrictId", districtId)); command.Parameters.Add(new SqlParameter("@InputTermId", detailReportParameter.InputTermId)); command.Parameters.Add(new SqlParameter("@Race", detailReportParameter.Race == -1 ? (int?)null : detailReportParameter.Race)); command.Parameters.Add(new SqlParameter("@Gender", detailReportParameter.Gender == -1 ? (int?)null : detailReportParameter.Gender)); command.Parameters.Add(new SqlParameter("@FrlIndicator", detailReportParameter.FrlIndicator)); command.Parameters.Add(new SqlParameter("@IepIndicator", detailReportParameter.IEPIndicator)); command.Parameters.Add(new SqlParameter("@LepIndicator", detailReportParameter.LEPIndicator)); command.Parameters.Add(new SqlParameter("@Hispanic", detailReportParameter.Hispanic)); command.Parameters.Add(new SqlParameter("@InputParentAssessmentTypeId", detailReportParameter.InputParentAssessmentTypeId)); SqlDataReader reader = command.ExecuteReader(); HeirarchicalTIRDetail tempDetail = null; int prevStudent = -1; int assessmentIndex = 0; while (reader.Read()) { var currentStudentId = Convert.ToInt32(reader["StudentId"]); if (prevStudent != currentStudentId) { prevStudent = currentStudentId; if (tempDetail != null) { //creating new row tempDetail.AssessmentCount = assessmentIndex; results.Add(tempDetail); assessmentIndex = 0; } tempDetail = new HeirarchicalTIRDetail(); tempDetail.StudentId = currentStudentId; tempDetail.LocalId = reader["LocalId"].ToString(); tempDetail.StudentName = reader["StudentName"].ToString(); tempDetail.LastName = reader["LastName"].ToString(); tempDetail.SchoolTermId = reader["SchoolTermId"] == DBNull.Value ? (int?)null : Convert.ToInt32(reader["SchoolTermId"]); tempDetail.RubricFileName = reader["RubricFileName"].ToString(); tempDetail.SLOFileName = reader["SLOFileName"].ToString(); } decimal? score = null; decimal? projection = null; decimal? impact = null; decimal? percentile = null; int? meetExceedValue = null; decimal? growth = null; int? parentAssessmentTypeId = null; int assessmentId; int assessmentTypeId; string assessmentDesc = null; string assessmentCode = null; SetHeirarchicalAssessmentScoreData(out score, out projection, out impact, out percentile, out meetExceedValue, out growth, out parentAssessmentTypeId, out assessmentId, out assessmentTypeId, out assessmentDesc, out assessmentCode, detailReportParameter.ViewScaledScore, reader); try { var scoreData = new HeirarchicalScoreData(); tempDetail.ScoreDataCollection.Add(scoreData); scoreData.RoundingType = HelperService.GetDecimalDisplayFormat(detailReportParameter.ViewScaledScore ? RoundingType.SiteDefaultDecimalPlace : RoundingType.NoDecimalPlace); scoreData.Growth = growth; scoreData.Percentile = percentile; scoreData.Score = score; scoreData.Projection = projection; scoreData.Impact = impact; scoreData.MeetExceedValue = meetExceedValue; scoreData.AssessmentDesc = assessmentDesc; scoreData.ParentAssessmentTypeId = parentAssessmentTypeId; scoreData.AssessmentId = assessmentId; scoreData.AssessmentTypeId = assessmentTypeId; scoreData.AssessmentCode = assessmentCode; } catch (Exception ex) { throw new Exception("Check if field exists belongs to correct assessment", ex); } assessmentIndex++; } if (tempDetail != null) { tempDetail.AssessmentCount = assessmentIndex; results.Add(tempDetail); //if any student has less assessments than total assessments, then in order to create same header for all, //add assessment with null score from previous assessments. results = GetFinalAssessmentAfterMergingMissingAssessments(results); } reader.Close(); connection.Close(); return results; }
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); } }
public List<HeirarchicalTIRDetail> GetFinalAssessmentAfterMergingMissingAssessments(List<HeirarchicalTIRDetail> existingAssessmentDetails) { // to get assessments with maximum number of assessments on top existingAssessmentDetails = existingAssessmentDetails.OrderByDescending(x => x.AssessmentCount).ToList(); int maxAssessmentCount = existingAssessmentDetails.Max(x => x.AssessmentCount); HeirarchicalTIRDetail previousRecord = null; existingAssessmentDetails.ForEach(record => { if (previousRecord != null && record.ScoreDataCollection.Count < maxAssessmentCount) { previousRecord.ScoreDataCollection.ForEach(prevRecord => { var assessmentExist = record.ScoreDataCollection.Exists(sa => sa.AssessmentTypeId == prevRecord.AssessmentTypeId); if (!assessmentExist) { var newScoreData = new HeirarchicalScoreData(); newScoreData.AssessmentTypeId = prevRecord.AssessmentTypeId; newScoreData.AssessmentCode = prevRecord.AssessmentCode; record.ScoreDataCollection.Add(newScoreData); } }); } previousRecord = record; }); //sort by AssessmentTypeId to get merged and old records in order. existingAssessmentDetails.ForEach(record => { var sortedScoreDataList = record.ScoreDataCollection.OrderBy(x => x.AssessmentTypeId).ToList(); record.ScoreDataCollection = sortedScoreDataList; }); return existingAssessmentDetails; }