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); } }
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)); } }
public IActionResult Put(int id, [FromBody] UpdateReservationViewModel vm) { return(ApiAction(() => { var contract = _mapper.Map <UpdateReservationContract>(vm); contract.Id = id; _ReservationService.Update(contract); return Accepted(); })); }
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); }
public UpdateReservationPage(int reservationId, bool approvalStatus) { InitializeComponent(); BindingContext = _viewModel = new UpdateReservationViewModel(reservationId, approvalStatus); }