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)); }
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)); }