public ActionResult SearchClass(string searchValue = null, string sort = "ClassName", string order = "desc", int page = 1, string id = null, string?role = null) { int pageSize = 10; var classes = new List <Class>(); int total = 0; var model = new SearchClassModel { SearchValue = searchValue, Page = page, PageSize = pageSize }; if (!string.IsNullOrEmpty(role)) { if (role.Equals("Teacher")) { classes = service.GetActiveTeacherClasses(id, searchValue, page, pageSize, sort + " " + order); total = service.GetActiveTeacherClasses(id, searchValue, sort + " " + order).Count; var teacher = service.GetTeacher(id); model.Person = Mapper.Map <BusinessObjects.Teacher, PersonModel>(teacher); } if (role.Equals("Student")) { classes = service.GetStudentClasses(id, searchValue, page, pageSize, sort + " " + order); total = service.GetStudentClasses(id, searchValue, sort + " " + order).Count; var student = service.GetStudent(id); model.Person = Mapper.Map <BusinessObjects.Student, PersonModel>(student); } } else { classes = service.GetClassesForManager(searchValue, sort + " " + order, page, pageSize); total = service.GetClassesForManager(searchValue, sort + " " + order).Count; } int totalPages = (int)Math.Ceiling(total / (double)pageSize); model.TotalPages = totalPages; var list = Mapper.Map <List <Class>, List <ClassModel> >(classes); foreach (var item in list) { item.Teacher = Mapper.Map <BusinessObjects.Teacher, PersonModel>(service.GetTeacher(item.TeacherID)); } model.Classes = new SortedList <ClassModel>(list, sort, order); return(View(model)); }
public ActionResult SearchClass(string searchValue = null, string sort = "ClassName", string order = "desc", int page = 1) { int pageSize = 10; var s = (Person)Session["USER_DTO"]; var classes = service.GetTeacherClasses(s.Username, searchValue, page, pageSize, sort + " " + order); var total = service.GetTeacherClasses(s.Username, searchValue, sort + " " + order).Count; int totalPages = (int)Math.Ceiling(total / (double)pageSize); var model = new SearchClassModel { SearchValue = searchValue, Page = page, PageSize = pageSize, TotalPages = totalPages }; var list = Mapper.Map <List <Class>, List <ClassModel> >(classes); foreach (var c in list) { c.TotalStudents = service.GetClassStudents(c.ClassID.ToString(), "Username " + order).Count; } model.Classes = new SortedList <ClassModel>(list, sort, order); return(View(model)); }