public IActionResult Put(int id, [FromBody] UpdateReservationViewModel updateReservationViewModel)
 {
     if (updateReservationViewModel != null)
     {
         Reservation reservation = new Reservation();
         reservation = iUpdateReservationMapper.MapUpdateReservationViewModelToModel(updateReservationViewModel, reservation);
         if (reservation.Employee.Id != 0)
         {
             reservation.Employee = iEmployeeRepository.GetEmployeeByID(reservation.Employee.Id);
         }
         if (reservation.Guest.ID != 0)
         {
             reservation.Employee = iEmployeeRepository.GetEmployeeByID(reservation.Employee.Id);
         }
         if (updateReservationViewModel.StartDate.HasValue && updateReservationViewModel.EndDate.HasValue)
         {
             updateReservationViewModel.StartDate = updateReservationViewModel.StartDate.Value.ToUniversalTime();
             updateReservationViewModel.EndDate   = updateReservationViewModel.EndDate.Value.ToUniversalTime();
         }
         iUpdateReservationValidationService.UpdateReservationValidation(reservation);
         iReservationRepository.UpdateReservation(reservation);
         iUnitOfWork.Save();
         return(Ok(reservation));
     }
     else
     {
         return(NotFound("Reservation with ID " + id.ToString() + " was not found."));
     }
 }
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            DateTime?startDate = Convert.ToDateTime(value);
            DateTime?endDate   = default(DateTime);
            Type     type      = validationContext.ObjectType;

            if (type == typeof(CreateReservationViewModel))
            {
                CreateReservationViewModel createReservationViewModel = (CreateReservationViewModel)validationContext.ObjectInstance;
                endDate = createReservationViewModel.EndDate;
            }
            if (type == typeof(UpdateReservationViewModel))
            {
                UpdateReservationViewModel updateReservationViewModel = (UpdateReservationViewModel)validationContext.ObjectInstance;
                endDate = updateReservationViewModel.EndDate;
            }

            if (startDate > endDate)
            {
                return(new ValidationResult("The start date must be anterior to the end date"));
            }
            else
            {
                return(ValidationResult.Success);
            }
        }
Example #3
0
        public async Task <IActionResult> Put(int id, [FromBody] UpdateReservationViewModel model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                var reservationEntity = await _reservationRepository.GetEntityById(id);

                if (reservationEntity == null)
                {
                    _message = $"Rezerwacja o identyfikatorze {id} nie istnieje";
                    return(NotFound(_message));
                }

                var statusCode = await ValidateEntities(model);

                if (statusCode == HttpStatusCode.NotFound)
                {
                    return(NotFound(_message));
                }
                else if (statusCode == HttpStatusCode.BadRequest)
                {
                    return(BadRequest(_message));
                }

                if (model.HotelId != reservationEntity.HotelId)
                {
                    await _hotelRepository.IncreaseAvailableRoomQuantity(reservationEntity.HotelId);

                    await _hotelRepository.DecreaseAvailableRoomQuantity((int)model.HotelId);
                }

                _mapper.Map(model, reservationEntity);
                _reservationRepository.UpdateEntity(reservationEntity);

                if (await _reservationRepository.SaveAsync())
                {
                    var updatedReservation = _mapper.Map <Reservation, UpdateReservationViewModel>(reservationEntity);
                    return(Ok(updatedReservation));
                }
                else
                {
                    _message = "Nie udało się zaktualizować rezerwacji";
                    return(BadRequest(_message));
                }
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
Example #4
0
        public IActionResult Put(int id, [FromBody] UpdateReservationViewModel vm)
        {
            return(ApiAction(() =>
            {
                var contract = _mapper.Map <UpdateReservationContract>(vm);
                contract.Id = id;
                _ReservationService.Update(contract);

                return Accepted();
            }));
        }
Example #5
0
 public Reservation MapUpdateReservationViewModelToModel(UpdateReservationViewModel updateReservationViewModel, Reservation reservation)
 {
     reservation.ID = updateReservationViewModel.ID;
     if (updateReservationViewModel.StartDate.HasValue && updateReservationViewModel.EndDate.HasValue)
     {
         reservation.StartDate = (DateTime)updateReservationViewModel.StartDate;
         reservation.EndDate   = (DateTime)updateReservationViewModel.EndDate;
     }
     reservation.Guest            = updateReservationViewModel.Guest;
     reservation.Employee         = updateReservationViewModel.Employee;
     reservation.RoomReservations = updateReservationViewModel.RoomReservations;
     if (reservation.RoomReservations != null)
     {
         foreach (RoomReservation roomReservation in reservation.RoomReservations)
         {
             if (roomReservation != null)
             {
                 roomReservation.ReservationID = updateReservationViewModel.ID;
             }
         }
     }
     return(reservation);
 }
Example #6
0
 public UpdateReservationPage(int reservationId, bool approvalStatus)
 {
     InitializeComponent();
     BindingContext = _viewModel = new UpdateReservationViewModel(reservationId, approvalStatus);
 }