Exemplo n.º 1
0
        public async Task <IActionResult> PostAsync(
            [FromBody] SaveReservationResource saveReservationResource)
        {
            var response = await _reservationService.AddAsync(saveReservationResource);

            if (!response.Success)
            {
                return(BadRequest(response));
            }

            return(Ok(response));
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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;
        }
Exemplo n.º 4
0
        /// <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));
            }
        }
Exemplo n.º 5
0
        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));
        }