예제 #1
0
        public async Task <IHttpActionResult> GetCampusLeaderInformation(CampusLeaderStudentSearchModel request)
        {
            var model = await _teachersService.GetTeacherStudentsByCampusLeader(request);

            if (model == null)
            {
                return(NotFound());
            }

            return(Ok(model));
        }
        public async Task <List <StudentCampusLeaderModel> > GetTeacherStudentsByCampusLeader(CampusLeaderStudentSearchModel model)
        {
            string text = string.Empty;

            if (!string.IsNullOrEmpty(model.Text))
            {
                text = model.Text.ToLower();
            }

            var studentsAssociatedWithStaff = await(from s in _edFiDb.Students
                                                    join ssa in _edFiDb.StudentSchoolAssociations on s.StudentUsi equals ssa.StudentUsi
                                                    join d in _edFiDb.Descriptors on ssa.EntryGradeLevelDescriptorId equals d.DescriptorId
                                                    join eo in _edFiDb.EducationOrganizations on ssa.SchoolId equals eo.EducationOrganizationId
                                                    join studSec in _edFiDb.StudentSectionAssociations
                                                    on new { ssa.StudentUsi, ssa.SchoolId } equals new { studSec.StudentUsi, studSec.SchoolId }
                                                    join staffSec in _edFiDb.StaffSectionAssociations
                                                    on new { studSec.SchoolId, studSec.ClassPeriodName, studSec.ClassroomIdentificationCode, studSec.LocalCourseCode, studSec.TermDescriptorId, studSec.SchoolYear, studSec.UniqueSectionCode, studSec.SequenceOfCourse }
                                                    equals new { staffSec.SchoolId, staffSec.ClassPeriodName, staffSec.ClassroomIdentificationCode, staffSec.LocalCourseCode, staffSec.TermDescriptorId, staffSec.SchoolYear, staffSec.UniqueSectionCode, staffSec.SequenceOfCourse }
                                                    join staff in _edFiDb.Staffs on staffSec.StaffUsi equals staff.StaffUsi
                                                    where (model.SchoolId == 0 || ssa.SchoolId == model.SchoolId) &&
                                                    (model.GradeId == 0 || ssa.EntryGradeLevelDescriptorId == model.GradeId) &&
                                                    (s.FirstName.ToUpper().Contains(text) || s.MiddleName.ToUpper().Contains(text) || s.LastSurname.ToUpper().Contains(text) || staff.FirstName.ToUpper().Contains(text) ||
                                                     staff.MiddleName.ToUpper().Contains(text) || staff.LastSurname.ToUpper().Contains(text))
                                                    orderby s.LastSurname
                                                    group new { s, eo, ssa, staff, d } by new { s.StudentUniqueId } into g
                                                    select new StudentCampusLeaderModel
            {
                StudentUsi         = g.FirstOrDefault().s.StudentUsi,
                StudentUniqueId    = g.FirstOrDefault().s.StudentUniqueId,
                FirstName          = g.FirstOrDefault().s.FirstName,
                LastSurname        = g.FirstOrDefault().s.LastSurname,
                MiddleName         = g.FirstOrDefault().s.MiddleName,
                TeacherFirstName   = g.FirstOrDefault().staff.FirstName,
                TeacherLastSurname = g.FirstOrDefault().staff.LastSurname,
                TeacherMiddleName  = g.FirstOrDefault().staff.MiddleName,
                StaffUsi           = g.FirstOrDefault().staff.StaffUsi,
                StaffUniqueId      = g.FirstOrDefault().staff.StaffUniqueId,
                GradeLevel         = g.FirstOrDefault().d.CodeValue,
                CurrentSchool      = g.FirstOrDefault().eo.NameOfInstitution
            }).ToListAsync();

            if (studentsAssociatedWithStaff.Any())
            {
                studentsAssociatedWithStaff = studentsAssociatedWithStaff.OrderBy(rec => rec.TeacherCompleteName).ThenBy(rec => rec.GradeLevel).ThenBy(rec => rec.StudentCompleteName).ToList();
            }

            return(studentsAssociatedWithStaff);
        }
예제 #3
0
 public async Task <List <StudentCampusLeaderModel> > GetTeacherStudentsByCampusLeader(CampusLeaderStudentSearchModel model)
 {
     return(await _teacherRepository.GetTeacherStudentsByCampusLeader(model));
 }