public IHttpActionResult GetAll(int page = 1, int itemsPerPage = 0) { var filter = new CourseFilterViewModel() { Page = page, ItemsPerPage = itemsPerPage < 1 ? ApplicationConstants.DefaultItemsPerPage : itemsPerPage }; var execution = Service.GetAllFiltered(filter); if (execution.Succeded) { return(Ok(execution.Result)); } return(BadRequest(execution.Message)); }
public ActionResult _CoursesListPartial(CourseFilterViewModel filter) { var execution = Service.GetAllFiltered(filter); if (!execution.Succeded) { return(HttpNotFound()); } var model = execution.Result.Item1; var itemsPerPage = filter.ItemsPerPage ?? ApplicationConstants.DefaultItemsPerPage; TempData["Pages"] = Math.Ceiling((double)execution.Result.Item2 / itemsPerPage); TempData["CurrentPage"] = filter.Page == 0 ? 1 : filter.Page; return(PartialView("_CoursesListPartial", model)); }
// GET: Courses public async Task <IActionResult> Index(int courseSemester, string courseProgramme, string searchString /*, string teacherString*/) { IQueryable <Course> courses = _context.Course.AsQueryable(); //lista od queries za sekoj course IQueryable <int> semesterQuery = _context.Course.OrderBy(m => m.Semester).Select(m => m.Semester).Distinct(); //lista od queries za site mozni semestri IQueryable <string> programmeQuery = _context.Course.Where(m => m.Programme != null).OrderBy(m => m.Programme).Select(m => m.Programme).Distinct(); //lista od queries za site mozni programi if (!string.IsNullOrEmpty(searchString)) { courses = courses.Where(s => s.Title.ToLower().Contains(searchString.ToLower())); } //eager loading courses = courses.Include(m => m.FirstTeacher) .Include(m => m.SecondTeacher); /* IEnumerable<Course> dataList = courses as IEnumerable<Course>; * * if (!string.IsNullOrEmpty(teacherString)) * { * dataList = dataList.Where(s => s.FirstTeacher.FullName.ToLower().Contains(teacherString.ToLower()) || s.SecondTeacher.FullName.ToLower().Contains(teacherString.ToLower())); * }*/ if (courseSemester != 0) { /*dataList = dataList.Where(x => x.Semester == courseSemester);*/ courses = courses.Where(x => x.Semester == courseSemester); } if (!string.IsNullOrEmpty(courseProgramme)) { /*dataList = dataList.Where(x => x.Programme == courseProgramme);*/ courses = courses.Where(x => x.Programme == courseProgramme); } var courseViewModel = new CourseFilterViewModel { Semesters = new SelectList(await semesterQuery.ToListAsync()), //dobivanje lista od semesters Programmes = new SelectList(await programmeQuery.ToListAsync()), /*Courses = dataList.ToList() //dobivanje lista*/ Courses = await courses.ToListAsync() }; return(View(courseViewModel)); }
// GET: Courses public async Task <IActionResult> Index(string courseTitle, int courseSemester, string courseProgramme) { IQueryable <Course> courses = _context.Courses.AsQueryable(); IQueryable <string> titleQuery = _context.Courses .OrderBy(m => m.Title).Select(m => m.Title).Distinct(); IQueryable <int> semesterQuery = _context.Courses .OrderBy(m => m.Semester).Select(m => m.Semester).Distinct(); IQueryable <string> programmeQuery = _context.Courses .OrderBy(m => m.Programme).Select(m => m.Programme).Distinct(); if (!string.IsNullOrEmpty(courseTitle)) { courses = courses.Where(x => x.Title == courseTitle); } if (courseSemester != 0) { courses = courses.Where(x => x.Semester == courseSemester); } if (!string.IsNullOrEmpty(courseProgramme)) { courses = courses.Where(x => x.Programme == courseProgramme); } courses = courses.Include(m => m.FirstProfessor).ThenInclude(m => m.FirstProfCourses); courses = courses.Include(m => m.SecondProfessor).ThenInclude(m => m.SecondProfCourses); courses = courses.Include(m => m.Students).ThenInclude(m => m.Student); var courseFilterVM = new CourseFilterViewModel { Titles = new SelectList(await titleQuery.ToListAsync()), Semesters = new SelectList(await semesterQuery.ToListAsync()), Programmes = new SelectList(await programmeQuery.ToListAsync()), Courses = await courses.ToListAsync() }; return(View(courseFilterVM)); //var universityAppContext = _context.Courses.Include(c => c.FirstProfessor).Include(c => c.SecondProfessor); //return View(await universityAppContext.ToListAsync()); }
public IHttpActionResult Get(string search = null, int page = 1, bool searchInDescription = false, bool searchInName = true, int itemsPerPage = 0) { var filter = new CourseFilterViewModel() { Page = page, Search = search, SearchInDescription = searchInDescription, SearchInName = searchInName, ItemsPerPage = itemsPerPage < 1 ? ApplicationConstants.DefaultItemsPerPage : itemsPerPage }; var execution = Service.GetAllFiltered(filter); if (execution.Succeded) { return(Ok(execution.Result)); } return(BadRequest(execution.Message)); }
// GET: Courses public async Task <IActionResult> Index(int courseSemester, string courseProgramme, string searchString, string teacherString) { IQueryable <int> semesterQuery = _context.Course.OrderBy(m => m.Semester).Select(m => m.Semester).Distinct(); IQueryable <string> programmeQuery = _context.Course.OrderBy(m => m.Programme).Select(m => m.Programme).Distinct(); var courses = from m in _context.Course .Include(m => m.FirstTeacher) .Include(m => m.SecondTeacher) select m; if (courseSemester != 0) { courses = courses.Where(x => x.Semester == courseSemester); } if (!string.IsNullOrEmpty(courseProgramme)) { courses = courses.Where(x => x.Programme == courseProgramme); } if (!string.IsNullOrEmpty(searchString)) { courses = courses.Where(s => s.Title.Contains(searchString)); } IEnumerable <Course> dataList = courses as IEnumerable <Course>; if (!string.IsNullOrEmpty(teacherString)) { dataList = dataList.Where(s => s.FirstTeacher.FullName.ToLower().Contains(teacherString.ToLower()) || s.SecondTeacher.FullName.Contains(teacherString)); } var courseViewModel = new CourseFilterViewModel { Semesters = new SelectList(await semesterQuery.ToListAsync()), Programmes = new SelectList(await programmeQuery.ToListAsync()), Courses = dataList.ToList() }; return(View(courseViewModel)); }
public ActionResult _PaginationPartial(CourseFilterViewModel model) { return(PartialView("_PaginationPartial", model ?? new CourseFilterViewModel())); }
public override IExecutionResult <Tuple <List <CourseIndexViewModel>, int> > GetAllFiltered(CourseFilterViewModel courseFilter) { Expression <Func <Course, bool> > where = course => true; if (!string.IsNullOrEmpty(courseFilter.Search)) { if ((courseFilter.SearchInDescription ?? false) && (courseFilter.SearchInName ?? false)) { where = c => c.Name.Contains(courseFilter.Search) || c.Description.Contains(courseFilter.Search); } else if (courseFilter.SearchInDescription ?? false) { where = c => c.Description.Contains(courseFilter.Search); } else if (courseFilter.SearchInName ?? false) { where = c => c.Name.Contains(courseFilter.Search); } } return(base.getAllFiltered(where : where, filter: courseFilter, order: c => c.Id)); }