public PagedResponse <LectureDto> Execute(LectureSearch search) { var query = context.Lectures.AsQueryable(); if (!string.IsNullOrEmpty(search.Title) || !string.IsNullOrWhiteSpace(search.Title)) { query = query.Where(x => x.Title.ToLower().Contains(search.Title.ToLower())); } if (search.CourseId > 0) { query = query.Where(x => x.CoursId == search.CourseId); } var skipCount = search.PerPage * (search.Page - 1); var reponse = new PagedResponse <LectureDto> { CurrentPage = search.Page, ItemsPerPage = search.PerPage, TotalCount = query.Count(), Items = query.Skip(skipCount).Take(search.PerPage).AsEnumerable().Select(item => mapper.Map <Lecture, LectureDto>(item)).ToList() /*Items = query.Skip(skipCount).Take(search.PerPage).Select(x => new LectureDto * { * Id = x.Id, * CoursId = x.CoursId, * Title=x.Title * }).ToList()*/ }; return(reponse); }
public IActionResult Get([FromQuery] LectureSearch search, [FromServices] IGetLecturesQuery query) { return(Ok(executor.ExecuteQuery(query, search))); }