Пример #1
0
        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)));
 }