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));
        }