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));
            }
        }