private POI GetNextPOIInternal(UserTour userTour) { POI nextPOI = _userPOIRepo.GetNextPOI(userTour); if (nextPOI == null) { var resp = new HttpResponseMessage(HttpStatusCode.Forbidden) { Content = new StringContent("Tour doesn't have remaining POIs") }; throw new HttpResponseException(resp); } return(nextPOI); }
public RouteToPointOfInterestDTO StartUserTour(int userID, int tourID, double currentLatitude, double currentLongitude) { VerifyNoTourIsStarted(userID); _userTourRepo.StartUserTour(userID, tourID); UserTour activeTour = _userTourRepo.GetActiveTour(userID); POI nextPOI = _userPOIRepo.GetNextPOI(activeTour.Id); IEnumerable <CoordinateDTO> route = _geoLocationService.GetRoute(currentLatitude, currentLongitude, nextPOI.Coordinates.Latitude.Value, nextPOI.Coordinates.Longitude.Value); return(new RouteToPointOfInterestDTO { NextPOI = PointOfInterestDTO.Create().Compile()(nextPOI), RouteToNextPOI = route }); }