public async Task <AccommodationDTO> EditAccommodationInfo(AccommodationEditDTO accommodationInfo) { using (_unitOfWork) { if (!DateManagerService.checkFromToDates(accommodationInfo.From, accommodationInfo.To)) { return(null); } Accommodation accommodation = await _unitOfWork.AccommodationRepository.FindByID(accommodationInfo.AccommodationId); Location location = await _unitOfWork.LocationRepository.FindByID(accommodation.LocationId); accommodation.Type = accommodationInfo.Type; accommodation.Name = accommodationInfo.Name; accommodation.Description = accommodationInfo.Description; accommodation.From = accommodationInfo.From; accommodation.To = accommodationInfo.To; accommodation.Address = accommodationInfo.Address; if (!DateManagerService.checkParentChildDates(location.From, location.To, accommodation.From, accommodation.To)) { return(null); } await _unitOfWork.Save(); AccommodationDTO retValue = _mapper.Map <Accommodation, AccommodationDTO>(accommodation); await _messageControllerService.NotifyOnTripChanges(location.TripId, "EditAccommodation", retValue); return(retValue); } }
public async Task <ActionResult> EditAccommodation(int tripId, [FromBody] AccommodationEditDTO accommodationInfo) { try { if (!await _editRightsService.HasEditRights(tripId)) { return(BadRequest(new JsonResult("You can't currently edit this trip."))); } AccommodationDTO result = await _accommodationService.EditAccommodationInfo(accommodationInfo); await _editRightsService.ProlongEditRights(tripId, _redisAppSettings.EditRightsProlongedTTL); if (result != null) { return(Ok(result)); } return(BadRequest(new JsonResult("Accommodation dates are not valid."))); } catch (Exception ex) { return(BadRequest(ex.Message)); } }