public async Task <ActionResult> SearchSortFilter(int courseId, int pageNumber, StudyMaterialSortingCriteria sortCriteria, string searchFor, int[] categories) { int totalNumberOfItems = await _studyMaterialManagementService.Count(courseId, searchFor, categories); PageInformation pageinformation = new PageInformation(pageNumber, totalNumberOfItems, WebConstants.MAX_NUMBER_OF_STUDY_MATERIALS_PER_PAGE); List <StudyMaterialViewModel> detailedStudyMaterialViewModels = await GetDetailedStudyMaterials(courseId, pageinformation.PageNumber, sortCriteria, searchFor, categories); CourseStudyMaterialsViewModel mainModel = new CourseStudyMaterialsViewModel(courseId, detailedStudyMaterialViewModels, pageinformation); await SetViewInformation(courseId, HttpReponseStatusCode.NoStatus, searchFor, sortCriteria, categories); return(View("Course", mainModel)); }
/// <summary> /// Returns index page of specific course, with its study materials. By default, no sorting or filtering /// is included. /// </summary> /// <param name="courseId"></param> /// <returns></returns> public async Task <IActionResult> Course(int courseId, HttpReponseStatusCode statusCode = HttpReponseStatusCode.NoStatus) { int totalNumberOfItems = await _studyMaterialManagementService.Count(courseId); PageInformation pageInformation = new PageInformation(0, totalNumberOfItems, WebConstants.MAX_NUMBER_OF_STUDY_MATERIALS_PER_PAGE); List <StudyMaterialViewModel> detailedStudyMaterialViewModels = await GetDetailedStudyMaterials(courseId); CourseStudyMaterialsViewModel mainModel = new CourseStudyMaterialsViewModel(courseId, detailedStudyMaterialViewModels, pageInformation); int[] selectedCategories = (await _categoryService.GetAll <NoSorting>(x => x.CourseId == courseId && !x.Deleted)) .Select(x => x.CategoryId) .ToArray(); await SetViewInformation(courseId, statusCode, categories : selectedCategories); return(View(mainModel)); }