Beispiel #1
0
        public PagedResponse <TicketResevationQueryDto> Execute(TicketReservationSearch search)
        {
            //var x = _context.Projections.Include(x => x.Movie).Include(x => x.Festival).ThenInclude(x => x.Place).AsQueryable();

            var query = _context.TicketReservations.Include(x => x.Ticket).ThenInclude(x => x.Projection).AsQueryable();  // Ovde nastaje greska za prikazivanje paged itema vrv zbog fake delete !

            //var query = _context.TicketReservations.AsQueryable(); //sa ovim radi

            if (!string.IsNullOrEmpty(search.MovieName) && !string.IsNullOrWhiteSpace(search.MovieName))
            {
                query = query.Where(x => x.Ticket.Projection.Movie.Name.ToLower().Contains(search.MovieName.ToLower()));
            }

            if (!string.IsNullOrEmpty(search.ReservationCode) && !string.IsNullOrWhiteSpace(search.ReservationCode))
            {
                query = query.Where(x => x.ReservationCode == search.ReservationCode);
            }

            if (search.UserID is int)
            {
                query = query.Where(x => x.UserID == search.UserID);
            }

            if (search.TicketID is int)
            {
                query = query.Where(x => x.TicketID == search.TicketID);
            }

            if (search.MovieID is int)
            {
                query = query.Where(x => x.Ticket.Projection.MovieID == search.MovieID);
            }

            if (search.ProjectionId is int)
            {
                query = query.Where(x => x.Ticket.ProjectionID == search.ProjectionId);
            }

            if (search.MinQuantity is int)
            {
                query = query.Where(x => x.Quantity > search.MinQuantity);
            }

            if (search.Bought is bool)
            {
                bool b = (bool)search.Bought;
                if (b)
                {
                    query = query.Where(x => x.Bought != null);
                }
                else
                {
                    query = query.Where(x => x.Bought == null);
                }
            }

            return(query.Paged <TicketResevationQueryDto, TicketReservation>(search, _mapper));
        }
 public IActionResult Get([FromQuery] TicketReservationSearch search, [FromServices] IGetTicketReservationsQuery query)
 {
     return(Ok(_executor.ExecuteQuery(query, search)));
 }