Ejemplo n.º 1
0
        public PageResponse <AuditoriumDto> Execute(AuditoriumSearch search)
        {
            var query = _context.Auditoriums.Include(a => a.Seats).Include(a => a.Screenings).AsQueryable();

            if (!string.IsNullOrEmpty(search.Name) || !string.IsNullOrWhiteSpace(search.Name))
            {
                query = query.Where(x => x.Name.ToLower().Contains(search.Name.ToLower()));
            }


            var skipCount = search.ItemsPerPage * (search.CurrentPage - 1);

            var response = new PageResponse <AuditoriumDto>
            {
                TotalCount   = query.Count(),
                CurrentPage  = search.CurrentPage,
                ItemsPerPage = search.ItemsPerPage,
                Items        = query.Skip(skipCount)
                               .Take(search.ItemsPerPage)
                               .Select(a => new AuditoriumDto
                {
                    Id              = a.Id,
                    Name            = a.Name,
                    CreatedAt       = a.CreatedAt,
                    AuditoirumSeats = a.Seats.Select(s => new AuditoirumSeats
                    {
                        Id     = s.Id,
                        Number = s.Number,
                    })
                }).ToList()
            };

            return(response);
        }
Ejemplo n.º 2
0
        public IActionResult Get(
            [FromQuery] AuditoriumSearch search,
            [FromServices] IGetAuditoirumsQuery query)
        {
            var result = _executor.ExecuteQuery(query, search);

            return(Ok(result));
        }