public IActionResult CreatePointOfInterest(int cityId, [FromBody] PointOfInterestCreationDTO pointofInterest) { if (pointofInterest == null) { return(BadRequest()); } if (!ModelState.IsValid) { return(NotFound()); } var city = CitiesDataStore.current.Cities.FirstOrDefault(c => c.Id == cityId); if (city == null) { return(NotFound()); } var MaxPoindOfInterestId = CitiesDataStore.current.Cities.SelectMany(c => c.pointofInterest).Max(p => p.Id); var finalPointOfDTO = new PointOfInterestDTO() { Id = ++MaxPoindOfInterestId, Name = pointofInterest.Name, Description = pointofInterest.Description }; city.pointofInterest.Add(finalPointOfDTO); return(CreatedAtRoute("getPoindOfInterest", new { cityId = cityId, id = finalPointOfDTO.Id })); //return Ok(); }
public IActionResult CreatePOI(int cityId, [FromBody] PointOfInterestCreationDTO poi) { if (poi == null) { return(BadRequest()); } if (!_cityRepository.CityExists(cityId)) { return(NotFound()); } if (poi.Description == poi.Name) { ModelState.AddModelError("Description", "Name and Description should be different"); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var city = CitiesDataStore.Current.cities.FirstOrDefault(x => x.Id == cityId); PointOfInterestDTO poiObj = new PointOfInterestDTO() { Id = city.NumberOfPointOfInterst + 1, //temporary Name = poi.Name, Description = poi.Description }; city.POI.Add(poiObj); return(CreatedAtRoute("GetPoiRoute", new { cityId = cityId, pId = poiObj.Id }, poiObj)); }
partial void Merge(PointOfInterest entity, PointOfInterestDTO dto, object state) { entity.PointOfInterestId = dto.PointOfInterestId; entity.Name = dto.Name; entity.Floor = dto.Floor; var coordinates = dto.Coordinates; if (coordinates != null && coordinates.Length == 2) { entity.Coordinates = this.vector2DConverter.Convert(coordinates, dto); } }
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 }); }
public IActionResult GetPointOfInterest(int cityId, int pointOfInterestId) { CityDTO city = CitiesDataStore.Current.Cities .FirstOrDefault(x => x.Id == cityId); PointOfInterestDTO pointOfInterest = city.PointsOfInterest .FirstOrDefault(x => x.Id == pointOfInterestId); if (pointOfInterest == null) { return(NotFound()); } return(Ok(pointOfInterest)); }
public IActionResult CreatePointOfInterest(int cityId, [FromBody] PointsOfInterestForCreationDTO pointsOfInterest) { //ERROR CHECKING... // null poi if (pointsOfInterest == null) { return(BadRequest("Point of Interest not defined.")); } // Adding a customer error and customized validation checking if (pointsOfInterest.Description == pointsOfInterest.Name) { ModelState.AddModelError("Description", "The provided description cannot be the same as the name."); } // ModelState is a dictionary containing various data // If model validation fails, isvalid will be false. if (!ModelState.IsValid) { // will pass along any error messages in modelstate to the response return(BadRequest(ModelState)); } // city not found var city = CitiesDataStore.Current.Cities.FirstOrDefault(c => c.Id == cityId); if (city == null) { return(NotFound("City not found.")); } // need to get next poi id... var maxPoiId = CitiesDataStore.Current.Cities.SelectMany(c => c.PointsOfInterest).Max(p => p.Id); var finalPoi = new PointOfInterestDTO() { Id = ++maxPoiId, Name = pointsOfInterest.Name, Description = pointsOfInterest.Description }; city.PointsOfInterest.Add(finalPoi); // this is the method to return a '201 created' response with the object in the response body return(CreatedAtRoute("GetPointOfInterest", new { cityId, id = finalPoi.Id }, finalPoi)); }
public IActionResult CreatePointOfInterest(int cityId, [FromBody] PointOfInterestForCreationDto pointOfInterest) { if (pointOfInterest == null) { return(BadRequest()); } if (pointOfInterest.Description == pointOfInterest.Name) { ModelState.AddModelError("Description", "The provided description should be different from the name."); } if (!ModelState.IsValid) { return(BadRequest()); } var city = CitiesDataStore.Current.Cities.FirstOrDefault(c => c.Id == cityId); if (city == null) { return(NotFound()); } var maxPointOfInterestId = CitiesDataStore.Current.Cities.SelectMany( c => c.PointsOfInterest).Max(p => p.Id); var finalPointOfInterest = new PointOfInterestDTO() { Id = ++maxPointOfInterestId, Name = pointOfInterest.Name, Description = pointOfInterest.Description }; city.PointsOfInterest.Add(finalPointOfInterest); return(CreatedAtRoute("GetPointOfInterest", new { cityId = cityId, id = finalPointOfInterest.Id, finalPointOfInterest } )); }
public IActionResult CreatePointOfInterest(int cityID, [FromBody] PointOfInterestCreationDTO pointOfInterest) { if (pointOfInterest == null) { return(BadRequest()); } if (pointOfInterest.Description == pointOfInterest.Name) { ModelState.AddModelError("Description", "The provided description cannot be the same as the name"); } //TODO: Check FluentValidation if (!ModelState.IsValid) { return(BadRequest()); } var city = CitiesDataStore.Current.Cities.Where(c => c.ID == cityID).FirstOrDefault(); if (city == null) { return(NotFound()); } var maxPointOfInterestID = CitiesDataStore.Current.Cities.SelectMany(c => c.PointsOfInterest).Max(p => p.ID); var finalPointOfInterest = new PointOfInterestDTO() { ID = maxPointOfInterestID + 1, Name = pointOfInterest.Name, Description = pointOfInterest.Description }; city.PointsOfInterest.Add(finalPointOfInterest); return(CreatedAtRoute("GetPointOfInterest", new { cityID, poiID = finalPointOfInterest.ID }, finalPointOfInterest)); }
public IActionResult CreatePointOfInterest(int cityId, [FromBody] PointOfInterestForCreationDTO poiData) { if (poiData.Description == poiData.Name) { ModelState.AddModelError( "Description", "The provided description should not match the name." ); } // handled by ApiController attribute (magic) // if (poiData == null) // { // return BadRequest(); // } // handled by ApiController attribute (magic) if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var city = CityDataStore.Current.Cities .FirstOrDefault(c => c.Id == cityId); if (city == null) { return(NotFound()); } var maxPoiId = CityDataStore.Current.Cities .SelectMany(c => c.PointsOfInterest).Max(p => p.Id); var nextPoi = new PointOfInterestDTO() { Id = ++maxPoiId, Name = poiData.Name, Description = poiData.Description }; city.PointsOfInterest.Add(nextPoi); return(CreatedAtRoute("GetPointOfInterest", new { cityId, id = nextPoi.Id }, nextPoi)); }
public IActionResult CreatePointOfInterest(int cityId, [FromBody] PointOfInterestDTO pointOfInterest) { var city = CityDataStore.Current.Cities.FirstOrDefault(c => c.Id == cityId); if (city == null) { return(NotFound()); } var lastID = CityDataStore.Current.Cities.SelectMany(c => c.PointOfInterests).Max(c => c.Id); var newPointOfInterest = new PointOfInterestDTO { Id = ++lastID, Name = pointOfInterest.Name, Description = pointOfInterest.Description }; city.PointOfInterests.Add(newPointOfInterest); return(CreatedAtRoute("GetPointOfInterest", new { cityId = cityId, id = newPointOfInterest.Id }, newPointOfInterest)); }
public PointOfInterestDTO GetNextPOI(int userID) { var nextPOI = GetNextPOIInternal(userID); return(PointOfInterestDTO.Create().Compile()(nextPOI)); }
public IEnumerable <PointOfInterestDTO> GetPOIsByTour(int tourID) { return(_poiRepo.GetPOIsByTour(tourID).Select(PointOfInterestDTO.Create())); }
public IEnumerable <PointOfInterestDTO> GetPOIs() { return(_poiRepo.GetPOIs().Select(PointOfInterestDTO.Create())); }