Exemplo n.º 1
0
        public IActionResult Post(CreateReservationDto model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            ReservationReadDto readDto = new ReservationReadDto();

            try
            {
                //mark room as booked
                //might want to differientiate online and admin  end points but
                //use the same implementation
                // online user's reservation room should still be free until they make payment
                //perphaps there should be a setup that tell us how long an online room should
                //remain booked before  successful transaction is confirmed.
                _repository.BeginTransaction();
                var reservation = _mapper.Map <Reservation>(model);
                // reservation.DateCreated = DateTime.Now;
                reservation.ReservationDate = DateTime.Now;
                _repository.updateRoomStatus(reservation.RoomId, RoomStatusEnum.BookedPaid);
                _repository.createReservation(reservation);
                _repository.saveChanges();
                _repository.CommitTransaction();
                readDto = _mapper.Map <ReservationReadDto>(reservation);
            }
            catch (Exception ex)
            {
                _repository.RollBackTransaction();
                throw new ApiException(ex.Message, 400);
            }

            return(Ok(readDto));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> GetById(long id)
        {
            Reservation reservation = await reservationService.GetById(id);

            ReservationReadDto reservationReadDto = mapper.Map <ReservationReadDto>(reservation);

            return(Ok(reservationReadDto));
        }
        public ActionResult <ReservationReadDto> GetReservationById(int id)
        {
            Reservation reservation = _reservationRepo.GetReservationById(id);

            if (reservation == null)
            {
                return(NotFound());
            }
            ReservationReadDto reservationReadDto = _mapper.Map <ReservationReadDto>(reservation);

            return(Ok(reservationReadDto));
        }
        public ActionResult <ReservationReadDto> CreateReservation([FromQueryAttribute] ReservationCreateDto reservationCreateDto)
        {
            Reservation reservationModel = _mapper.Map <Reservation>(reservationCreateDto);

            try
            {
                IsValidReservation(reservationModel.ReservationGuestId, reservationModel.ReservationHostId, reservationModel.ArrivingDate, reservationModel.LeavingDate);
            }
            catch (ArgumentException exp)
            {
                return(NotFound(exp.Message));
            }

            _reservationRepo.CreateReservation(reservationModel);
            _reservationRepo.SaveChanges();
            ReservationReadDto reservationReadDto = _mapper.Map <ReservationReadDto>(reservationModel);

            return(CreatedAtRoute(nameof(GetReservationById), new { id = reservationModel.Id }, reservationReadDto));
        }