/// <summary>
        /// Gets the courses by staff.
        /// </summary>
        /// <param name="staffId">The staff id.</param>
        /// <returns></returns>
        public List <CourseViewModel> GetCoursesByStaff(int staffId)
        {
            List <CourseViewModel> models = new List <CourseViewModel>();

            try
            {
                List <Course> courses = CourseManager.GetCoursesByStaff(staffId);
                models = CourseViewModelFactory.CreateCourseViewModels(courses, ObjectMapper);
            }
            catch (Exception ex)
            {
                ExceptionManager.HandleException(ex, PolicyNameType.ExceptionReplacing);
            }
            return(models);
        }
        /// <summary>
        /// Gets the course with modules by id.
        /// </summary>
        /// <param name="courseId">The course id.</param>
        /// <returns></returns>
        public CourseViewModel GetCourseWithModulesById(int courseId)
        {
            CourseViewModel models = new CourseViewModel();

            try
            {
                Course courses = CourseManager.FindCourseWithModulebyCourseId(courseId);
                models = CourseViewModelFactory.CreateCourseViewModels(courses, ObjectMapper);
            }
            catch (Exception ex)
            {
                ExceptionManager.HandleException(ex, PolicyNameType.ExceptionReplacing);
            }
            return(models);
        }
        /// <summary>
        /// Gets all student course and modules.
        /// </summary>
        /// <param name="studentId">The student id.</param>
        /// <param name="includeModules">if set to <c>true</c> [include modules].</param>
        /// <returns></returns>
        public List <CourseViewModel> GetAllStudentCourses(int studentId, bool includeModules = true)
        {
            List <CourseViewModel> models = new List <CourseViewModel>();

            try
            {
                List <Course> courses = CourseManager.GetAllCoursesByStudent(studentId, includeModules);
                models = CourseViewModelFactory.CreateCourseViewModels(courses, ObjectMapper);
            }
            catch (Exception ex)
            {
                ExceptionManager.HandleException(ex, PolicyNameType.ExceptionReplacing);
            }
            return(models);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="staffId"></param>
        /// <param name="filter"></param>
        /// <returns></returns>
        public List <CourseViewModel> GetCoursesWithDepartmentByStaffId(int staffId, string filter)
        {
            List <CourseViewModel> models = new List <CourseViewModel>();

            try
            {
                //Get the modules
                List <Course> courses = CourseManager.FindCoursesWithDepartmentByStaffId(staffId, filter);
                models = CourseViewModelFactory.CreateCourseViewModels(courses, ObjectMapper);
            }
            catch (Exception ex)
            {
                ExceptionManager.HandleException(ex, PolicyNameType.ExceptionReplacing);
            }

            return(models);
        }