/// <summary> /// This method populates a StudentSearchCriteria object with values from the Criteria Controller /// </summary> /// <param name="criteriaController"></param> /// <returns></returns> private IMStudentSearchCriteria GetStudentCriteriaFromController(CriteriaController criteriaController) { var studentSearchCriteria = new IMStudentSearchCriteria(); var studentName = criteriaController.ParseCriteria<Text.ValueObject>("StudentName").FirstOrDefault(); studentSearchCriteria.StudentName = studentName == null ? string.Empty : studentName.Text; var studentId = criteriaController.ParseCriteria<Text.ValueObject>("StudentID").FirstOrDefault(); studentSearchCriteria.StudentID = studentId == null ? string.Empty : studentId.Text; var inactiveRti = criteriaController.ParseCriteria<CheckBoxList.ValueObject>("RTI").Find(x => x.Text == RtiFormerYear); studentSearchCriteria.InactiveRTI = inactiveRti == null ? string.Empty : inactiveRti.Text; var tier1Rti = criteriaController.ParseCriteria<CheckBoxList.ValueObject>("RTI") .Find(x => x.Text == RtiTier1); studentSearchCriteria.Tier1RTI = tier1Rti == null ? string.Empty : tier1Rti.Text; var tier2Rti = criteriaController.ParseCriteria<CheckBoxList.ValueObject>("RTI") .Find(x => x.Text == RtiTier2); studentSearchCriteria.Tier2RTI = tier2Rti == null ? string.Empty : tier2Rti.Text; var tier3Rti = criteriaController.ParseCriteria<CheckBoxList.ValueObject>("RTI") .Find(x => x.Text == RtiTier3); studentSearchCriteria.Tier3RTI = tier3Rti == null ? string.Empty : tier3Rti.Text; studentSearchCriteria.Cluster = string.Join(",", criteriaController.ParseCriteria<CheckBoxList.ValueObject>("Cluster").Select(x => x.Text).ToList()); studentSearchCriteria.SchoolTypes = string.Join(",", criteriaController.ParseCriteria<CheckBoxList.ValueObject>("SchoolType").Select(x => x.Text).ToList()); studentSearchCriteria.School = Convert.ToInt32(criteriaController.ParseCriteria<DropDownList.ValueObject>("School") .Select(x => x.Value) .ToList() .FirstOrDefault()); studentSearchCriteria.Grades = string.Join(",", criteriaController.ParseCriteria<CheckBoxList.ValueObject>("Grade").Select(x => x.Text).ToList()); studentSearchCriteria.ClassID = Convert.ToInt32(criteriaController.ParseCriteria<DropDownList.ValueObject>("Class").Select(x => x.Value).ToList().FirstOrDefault()); ClassId = studentSearchCriteria.ClassID > 0 ? studentSearchCriteria.ClassID : ClassId; studentSearchCriteria.GroupID = Convert.ToInt32(criteriaController.ParseCriteria<DropDownList.ValueObject>("Group").Select(x => x.Value).ToList().FirstOrDefault()); GroupId = studentSearchCriteria.GroupID > 0 ? studentSearchCriteria.GroupID : GroupId; return studentSearchCriteria; }
/// <summary> /// This method loads all students the the current user has visibility too AND that are not already /// enrolled in the current group. /// </summary> /// <returns>A list of students who are eligable to be added to this group</returns> public IEnumerable<IMAvailableStudent> LoadStudentsAvailableForIM() { var availableStudents = new List<IMAvailableStudent>(); var studentSearchCriteria = new IMStudentSearchCriteria(); var IM = new IMAssignment(); var criteriaController = GetCriteriaControllerFromMasterPage(); if (criteriaController != null) { studentSearchCriteria = GetStudentCriteriaFromController(criteriaController); } switch (SessionObject.CurrentPortal) { case EntityTypes.District: availableStudents = IM.GetAvaiableStudentsForIM(GroupId, SessionObject.LoggedInUser.Page, studentSearchCriteria, DistrictParms.LoadDistrictParms().ClientID, ClassId, DocumentNodeID); break; case EntityTypes.School: if (studentSearchCriteria.School == 0) { studentSearchCriteria.School = SessionObject.LoggedInUser.School; } availableStudents = IM.GetAvaiableStudentsForIM(GroupId, SessionObject.LoggedInUser.Page, studentSearchCriteria, DistrictParms.LoadDistrictParms().ClientID, ClassId, DocumentNodeID); break; case EntityTypes.Teacher: availableStudents = IM.GetAvaiableStudentsForIM(GroupId, SessionObject.LoggedInUser.Page, studentSearchCriteria, DistrictParms.LoadDistrictParms().ClientID, ClassId, DocumentNodeID); break; } return availableStudents; }