public async Task <IActionResult> PostAsync( [FromBody] SaveReservationResource saveReservationResource) { var response = await _reservationService.AddAsync(saveReservationResource); if (!response.Success) { return(BadRequest(response)); } return(Ok(response)); }
public async Task <IActionResult> PutAsync(int id, [FromBody] SaveReservationResource saveReservationResource) { var response = await _reservationService.UpdateAsync(id, saveReservationResource); if (!response.Success) { return(BadRequest(response)); } return(Ok(response)); }
public static void Map(Reservation reservation, SaveReservationResource reservationResource) { if (reservation == null || reservationResource == null) { throw new ArgumentNullException("Wrong reservation or reservation resource provided."); } reservation.Date = reservationResource.Date; reservation.Notes = reservationResource.Notes; reservation.Rating = reservationResource.Rating; reservation.IsFavorite = reservation.IsFavorite; }
/// <summary> /// Updates a reservation. /// </summary> /// <param name="reservationId">Reservation identifier.</param> /// <param name="reservationResource">New reservation information</param> /// <returns>Reservation information.</returns> public async Task <DataResponse <ReservationResource> > UpdateAsync(int reservationId, SaveReservationResource reservationResource) { try { if (reservationResource == null) { throw new ArgumentNullException(nameof(reservationResource)); } var reservation = await _reservationRepository.FindByIdAsync(reservationId); if (reservation == null) { throw new NotFoundException(nameof(Reservation), reservationId); } var place = await _placeRepository.FindByIdAsync(reservationResource.PlaceId); reservation.Place = place ?? throw new NotFoundException(nameof(Place), reservationResource.PlaceId); if (reservationResource.Contact != null) { var contact = await _contactRepository.FirstOrDefaultAsync( new ContactsByNameSpec(reservationResource.Contact.Name)); if (contact != null) { ContactMapper.Map(contact, reservationResource.Contact); reservation.Contact = contact; } else { reservation.Contact = _mapper.Map <Contact>(reservationResource.Contact); } } ReservationMapper.Map(reservation, reservationResource); _reservationRepository.Update(reservation); await _unitOfWork.SaveChangesAsync(); var resource = _mapper.Map <ReservationResource>(reservation); return(new DataResponse <ReservationResource>(resource)); } catch (Exception ex) { Console.WriteLine(ex.Message); return(new DataResponse <ReservationResource>(ex.Message)); } }
public async Task <IActionResult> PutAsync(int id, [FromBody] SaveReservationResource resource) { if (!ModelState.IsValid) { return(BadRequest(ModelState.GetErrorMessages())); } var reservation = mapper.Map <SaveReservationResource, Reservation>(resource); var result = await reservationService.UpdateAsync(id, reservation); if (!result.Success) { return(BadRequest(result.Message)); } var reservationResource = mapper.Map <Reservation, ReservationResource>(result.Reservation); return(Ok(reservationResource)); }