public async Task <IActionResult> Index(HttpReponseStatusCode statusCode = HttpReponseStatusCode.NoStatus)
        {
            CourseCategoryIndexViewModel mainModel = await GetCourses();

            ViewBag.InfoMessage = new InfoMessage(_stringLocalizer, statusCode);
            return(View(mainModel));
        }
        private async Task <CourseCategoryIndexViewModel> GetCourses(int pageNumber = 0, StudyProgram[] studyPrograms = null, string searchFor = null)
        {
            int offset = pageNumber * WebConstants.MAX_NUMBER_OF_COURSES_PER_PAGE;

            if (studyPrograms == null || studyPrograms.Count() == 0)
            {
                studyPrograms = Enum.GetValues(typeof(StudyProgram)).Cast <StudyProgram>().ToArray();
            }
            List <DetailedCourseCategoryDTO> detailedCourses = await _courseCategoryManagementService.GetDetailedCourses(offset, WebConstants.MAX_NUMBER_OF_COURSES_PER_PAGE, studyPrograms, searchFor);

            PageInformation pageInformation        = new PageInformation(pageNumber, _courseCategoryManagementService.Count(studyPrograms, searchFor), WebConstants.MAX_NUMBER_OF_COURSES_PER_PAGE);
            CourseCategoryIndexViewModel mainModel = new CourseCategoryIndexViewModel(_mapper.Map <List <DetailedCourseCategoryDTO>, List <DetailedCourseViewModel> >(detailedCourses), pageInformation);

            ViewBag.SearchFor     = searchFor;
            ViewBag.StudyPrograms = studyPrograms;
            return(mainModel);
        }
        public async Task <IActionResult> SearchFilter(int pageNumber, string searchFor, StudyProgram[] studyPrograms)
        {
            CourseCategoryIndexViewModel mainModel = await GetCourses(pageNumber, studyPrograms, searchFor);

            return(View("Index", mainModel));
        }