public async Task <ActionResult <IEnumerable <ReservationDto> > > GetAllReservations()
        {
            var query  = new GetAllReservationsQuery();
            var result = await _mediator.Send(query);

            return(Ok(result));
        }
 public async Task <IEnumerable <ReservationsOutput> > GetReservations(
     [FromServices] GetAllReservationsQuery query,
     [FromQuery] ReservationsFilter filter
     )
 {
     return(await query.ExecuteAsync(filter));
 }
        public async Task NoFilter_ReturnAllReservations()
        {
            var request = new GetAllReservationsQuery();

            var response = await this.sut.Handle(request, CancellationToken.None).ConfigureAwait(false);

            Assert.Equal(this.dbReservations.Select(r => r.Id), response.Select(r => r.Id));
        }
 public ReservationsService(GetAllReservationsQuery queryAll, GetReservationByIdQuery queryById, AddReservationQuery queryAdd, DeleteReservationQuery queryDelete, GetAllLecturersQuery queryAllLecturers, GetAllLectureHallsQuery queryAllLectureHalls)
 {
     _queryAll             = queryAll;
     _queryById            = queryById;
     _queryAdd             = queryAdd;
     _queryDelete          = queryDelete;
     _queryAllLecturers    = queryAllLecturers;
     _queryAllLectureHalls = queryAllLectureHalls;
 }
예제 #5
0
        public async Task <IEnumerable <ReservationsOutput> > GetCurrentUserReservations(
            [FromServices] GetAllReservationsQuery query,
            [FromQuery] ReservationsFilter filter
            )
        {
            var currentUser = await UserExtractor.ProvideUserAsync();

            filter.UserId = currentUser.Id;

            return(await query.ExecuteAsync(filter));
        }
        public async Task FilterByGuestId_ReturnAllReservationsForApartmentsRentedByGuest()
        {
            var request = new GetAllReservationsQuery()
            {
                GuestId = this.dbGuests[0].UserId
            };

            var response = await this.sut.Handle(request, CancellationToken.None).ConfigureAwait(false);

            var reservation = Assert.Single(response);

            Assert.Equal(request.GuestId, reservation.Guest.Id);
        }
예제 #7
0
        private ReservationsService CreateReservationsServiceForStatisticsTests()
        {
            mockDb = TestDatabaseFactory.CreateDatabaseForStatistics();

            mockQueryAllLectureHalls    = new GetAllLectureHallsQuery(mockDb);
            mockQueryAllLectures        = new GetAllLecturersQuery(mockDb);
            mockQueryAllReservations    = new GetAllReservationsQuery(mockDb);
            mockQueryAddReservation     = new AddReservationQuery(mockDb);
            mockQueryDeleteReservation  = new DeleteReservationQuery(mockDb);
            mockQueryGetReservationById = new GetReservationByIdQuery(mockDb);

            return(new ReservationsService(mockQueryAllReservations, mockQueryGetReservationById,
                                           mockQueryAddReservation, mockQueryDeleteReservation, mockQueryAllLectures, mockQueryAllLectureHalls));
        }
예제 #8
0
        private ReservationsService CreateReservationsService(bool empty)
        {
            mockDb = empty ? TestDatabaseFactory.CreateEmptyDatabase() : TestDatabaseFactory.CreateDatabase();

            mockQueryAllLectureHalls    = new GetAllLectureHallsQuery(mockDb);
            mockQueryAllLectures        = new GetAllLecturersQuery(mockDb);
            mockQueryAllReservations    = new GetAllReservationsQuery(mockDb);
            mockQueryAddReservation     = new AddReservationQuery(mockDb);
            mockQueryDeleteReservation  = new DeleteReservationQuery(mockDb);
            mockQueryGetReservationById = new GetReservationByIdQuery(mockDb);

            return(new ReservationsService(mockQueryAllReservations, mockQueryGetReservationById,
                                           mockQueryAddReservation, mockQueryDeleteReservation, mockQueryAllLectures, mockQueryAllLectureHalls));
        }
예제 #9
0
        private async Task <bool> IsAllowedToCreateComment(long apartmentId, long guestId)
        {
            if (await this.authService.CheckIfBanned(this.User).ConfigureAwait(false))
            {
                return(false);
            }

            var query = new GetAllReservationsQuery()
            {
                ApartmentId = apartmentId, GuestId = guestId
            };
            var reservations = await this.mediator.Send(query).ConfigureAwait(false);

            string[] allowedStates = new[] { ReservationStates.Completed };
            return(reservations.Any(r => allowedStates.Contains(r.ReservationState)));
        }
예제 #10
0
        public async Task <IActionResult> Get([FromQuery] GetAllReservationsQuery query)
        {
            if (await authService.CheckIfBanned(this.User).ConfigureAwait(false))
            {
                return(this.Forbid());
            }

            var currClaim = this.User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier);

            if (this.User.IsInRole(RoleNames.Guest))
            {
                query.GuestId          = long.Parse(currClaim.Value);
                query.ReservationState = "";
                query.HostId           = null;
            }
            if (this.User.IsInRole(RoleNames.Host))
            {
                query.HostId = long.Parse(currClaim.Value);
            }

            return(this.Ok(await this.mediator.Send(query).ConfigureAwait(false)));
        }
예제 #11
0
 public async Task <IEnumerable <ReservationDto> > Handle(GetAllReservationsQuery request, CancellationToken cancellationToken)
 {
     //return await repository.Reservation.FindAllAsync();
     return(await repository.Reservation.GetReservationsAsync());
 }