Ejemplo n.º 1
0
        public PagedResponse <MovieReservationDto> Execute(ReservationSearch search)
        {
            var query = context.MovieReservations.Include(r => r.Movie).Include(r => r.User)
                        .AsQueryable();


            var skipCount = search.PerPage * (search.Page - 1);

            //Page == 1
            var reponse = new PagedResponse <MovieReservationDto>
            {
                CurrentPage  = search.Page,
                ItemsPerPage = search.PerPage,
                TotalCount   = query.Count(),
                Items        = query.Skip(skipCount).Take(search.PerPage).Select(x => new MovieReservationDto
                {
                    MovieId = x.MovieId,
                    UserId  = x.UserId
                    , Movie = new MovieDto
                    {
                        Title          = x.Movie.Title,
                        Description    = x.Movie.Description,
                        OnStock        = x.Movie.OnStock,
                        ReleaseDate    = x.Movie.ReleaseDate,
                        RuntimeMinutes = x.Movie.RuntimeMinutes,
                        DirectorId     = x.Movie.DirectorId
                    }
                }).ToList()
            };

            return(reponse);
        }
Ejemplo n.º 2
0
        public async Task <List <Reservation> > Search(ReservationSearch search)
        {
            var query = _dbContext.Reservations.AsNoTracking().AsQueryable();

            if (search.State.HasValue)
            {
                query = query.Where(r => r.State == search.State);
            }
            if (search.CarId.HasValue)
            {
                query = query.Where(r => r.CarId == search.CarId.Value);
            }
            if (search.DurationInDays.HasValue)
            {
                query = query.Where(r => r.DurationInDays == search.DurationInDays.Value);
            }
            if (search.CustomerId.HasValue)
            {
                query = query.Where(r => r.CustomerId == search.CustomerId.Value);
            }
            if (search.TotalCost.HasValue)
            {
                query = query.Where(r => r.TotalCost == search.TotalCost.Value);
            }

            return(await query.OrderBy(r => r.State).ToListAsync());
        }
Ejemplo n.º 3
0
 public ActionResult <IEnumerable <ReservationGetDTO> > Get([FromQuery] ReservationSearch request)
 {
     try
     {
         var response = _getReservationsCommmand.Execute(request);
         return(Ok(response));
     }
     catch
     {
         return(StatusCode(500, "Server error, try later"));
     }
 }
Ejemplo n.º 4
0
        public async Task <List <ReservationDto> > Search(ReservationSearch search)
        {
            List <Reservation> reservationList;

            if (!search.State.HasValue && !search.CarId.HasValue && !search.CustomerId.HasValue &&
                !search.TotalCost.HasValue && !search.DurationInDays.HasValue)
            {
                reservationList = await _repository.GetAllAsync();
            }
            else
            {
                reservationList = await _repository.Search(search);
            }
            var reservationListDtos = new List <ReservationDto>();

            reservationList.ForEach(r => { reservationListDtos.Add(Reservation.ToDto(r)); });
            return(reservationListDtos);
        }
Ejemplo n.º 5
0
 public IActionResult Get([FromQuery] ReservationSearch search, [FromServices] IGetReservationQuery query)
 {
     return(Ok(executor.ExecuteQuery(query, search)));
 }