public ActionResult Index() { return(View(_specialtyService.Query().Select(specialty => new SpecialtyViewModel { Id = specialty.SpecialtyId, CourseNumber = specialty.Course.CourseNumber, Name = specialty.Name }).ToList())); }
public ActionResult Index(long?courseId, long?specialtyId, long?groupId, int?yearOfEntrance) { var courses = _courseService.Queryable().ToList(); if (courseId == null) { var firstCourse = courses.FirstOrDefault(); courseId = firstCourse == null ? -1 : firstCourse.CourseId; } var specialties = _specialtyService .Query(specialty => specialty.CourseId == (long)courseId) .Select() .ToList(); if (specialtyId == null) { var firstSpecialty = specialties.FirstOrDefault(); specialtyId = firstSpecialty == null ? -1 : firstSpecialty.SpecialtyId; } var groups = _groupService.Query(group => group.SpecialtyId == (long)specialtyId && group.Specialty.CourseId == (long)courseId) .Select() .ToList(); if (groupId == null) { var firstGroup = groups.FirstOrDefault(); groupId = firstGroup == null ? -1 : firstGroup.GroupId; } var yearOfEntrances = new List <int>(); var temp = _studentService .Query(student => student.GroupId == (long)groupId) .Select(student => student.YearOfEntrance).ToList(); foreach (var value in temp.Where(value => !yearOfEntrances.Contains(value))) { yearOfEntrances.Add(value); } yearOfEntrances = yearOfEntrances.OrderBy(i => i).ToList(); if (yearOfEntrance == null) { var firstYearOfEntrance = yearOfEntrances.FirstOrDefault(); yearOfEntrance = firstYearOfEntrance; } var model = new StudentViewModel { Courses = new SelectList(courses, "CourseId", "CourseNumber", courseId), Specialties = new SelectList(specialties, "SpecialtyId", "Name", specialtyId), Groups = new SelectList(groups, "GroupId", "GroupNumber", groupId), YearOfEntrances = new SelectList(yearOfEntrances), YearOfEntrance = (int)yearOfEntrance, GroupId = (long)groupId, Students = _studentService.Query(student => student.GroupId == groupId && student.YearOfEntrance == yearOfEntrance) .Select(student => new StudentRowViewModel { CourseNumber = student.Group.Specialty.Course.CourseNumber, GroupNumber = student.Group.GroupNumber, SpecialtyName = student.Group.Specialty.Name, FirstName = student.FirstName, YearOfEntrance = student.YearOfEntrance, LastName = student.LastName, MiddleName = student.MiddleName, StudentId = student.StudentId, Login = student.Login, Password = student.Password }).ToList() }; var gv = new GridView { DataSource = model.Students }; gv.DataBind(); Session["Students"] = gv; return(View(model)); }