public async Task <IActionResult> CreateBooking([FromBody] SaveBookingResource bookingResource) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var booking = mapper.Map <SaveBookingResource, Booking>(bookingResource); var roomExist = repository.BookingRoomExist(booking); var offeringExist = repository.BookingOfferingExist(booking); if (roomExist && offeringExist) { return(Conflict("The room and module is already taken")); } else if (roomExist) { return(Conflict("The room is already taken")); } else if (offeringExist) { return(Conflict("The module is already booked in the same time slot")); } repository.Add(booking); await unitOfWork.CompleteAsync(); booking = await repository.GetBooking(booking.Id); var result = mapper.Map <Booking, BookingResource>(booking); return(Ok(result)); }
public async Task <IActionResult> ConfirmCreateBooking([FromBody] SaveBookingResource bookingResource) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var booking = mapper.Map <SaveBookingResource, Booking>(bookingResource); repository.Add(booking); await unitOfWork.CompleteAsync(); booking = await repository.GetBooking(booking.Id); var result = mapper.Map <Booking, BookingResource>(booking); return(Ok(result)); }
public async Task <ActionResult <DisplayBookingResource> > PostBooking(SaveBookingResource resource) { if (!ModelState.IsValid) { return(BadRequest(ModelState.GetErrorMessages())); } var booking = _mapper.Map <SaveBookingResource, Booking>(resource); var result = await _bookingService.SaveAsync(booking); if (!result.Success) { return(BadRequest(result.Message)); } var bookingResource = _mapper.Map <Booking, DisplayBookingResource>(result.Booking); return(CreatedAtAction("GetBooking", new { id = bookingResource.ID }, bookingResource)); }
public async Task <ActionResult <DisplayBookingResource> > PutBooking(int id, SaveBookingResource resource) { if (!ModelState.IsValid) { return(BadRequest(ModelState.GetErrorMessages())); } var booking = _mapper.Map <SaveBookingResource, Booking>(resource); var result = await _bookingService.UpdateAsync(id, booking); if (!result.Success) { return(BadRequest(result.Message)); } var bookingResource = _mapper.Map <Booking, DisplayBookingResource>(result.Booking); return(bookingResource); }