public async Task <ActionResult> EditTripInfo([FromBody] TripEditDTO tripInfo) { try { if (!await _editRightsService.HasEditRights(tripInfo.TripId)) { return(BadRequest(new JsonResult("You can't currently edit this trip."))); } TripDTO result = await _tripService.EditTripInfo(tripInfo); await _editRightsService.ProlongEditRights(tripInfo.TripId, _redisAppSettings.EditRightsProlongedTTL); if (result != null) { return(Ok(result)); } return(BadRequest(new JsonResult("Trip dates are not valid."))); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public async Task <TripDTO> EditTripInfo(TripEditDTO tripInfo) { using (_unitOfWork) { if (!DateManagerService.checkFromToDates(tripInfo.From, tripInfo.To)) { return(null); } Trip trip = await _unitOfWork.TripRepository.GetTripWithILocations(tripInfo.TripId); if (trip.Locations != null) { foreach (Location location in trip.Locations) { if (!DateManagerService.checkParentChildDates(tripInfo.From, tripInfo.To, location.From, location.To)) { return(null); } } } trip.Name = tripInfo.Name; trip.Description = tripInfo.Description; trip.From = tripInfo.From; trip.To = tripInfo.To; _unitOfWork.TripRepository.Update(trip); await _unitOfWork.Save(); TripDTO returnTrip = _mapper.Map <Trip, TripDTO>(trip); TripBasicDTO notificationTrip = _mapper.Map <Trip, TripBasicDTO>(trip); await _messageControllerService.NotifyOnTripChanges(trip.TripId, "EditTripInfo", notificationTrip); return(returnTrip); } }