public IActionResult CreatePointOfIterest(int cityId, [FromBody] PointOfIterestForCreationDto pointOfInterest) { if (pointOfInterest == null || (!ModelState.IsValid)) { return(BadRequest(ModelState)); } var city = CitiesDataStore.Current.Cities.FirstOrDefault(c => c.Id == cityId); if (city == null) { _logger.LogError($"The Given cityid #{cityId} was not found"); return(NotFound()); } var MaxPoi = CitiesDataStore.Current.Cities.SelectMany(c => c.PointOfInterest).Max(p => p.Id); var FinalPointOfInterest = new PointOfInterestDto { Id = ++MaxPoi, Name = pointOfInterest.Name, Description = pointOfInterest.Description }; city.PointOfInterest.Add(FinalPointOfInterest); return(CreatedAtRoute("GetPointOfinterest", new { Cityid = cityId, Id = FinalPointOfInterest.Id }, FinalPointOfInterest)); }
public IActionResult PartiallyUpdatePointOfInterest(int cityId, int id, [FromBody] JsonPatchDocument <PointOfIterestForCreationDto> patchdoc) { if (patchdoc == null) { return(BadRequest()); } var city = CitiesDataStore.Current.Cities.FirstOrDefault(c => c.Id == cityId); var Poi = city.PointOfInterest.FirstOrDefault(p => p.Id == id); if (city == null || Poi == null) { return(NotFound()); } var pointOfInterestToPatch = new PointOfIterestForCreationDto() { Name = Poi.Name, Description = Poi.Description }; patchdoc.ApplyTo(pointOfInterestToPatch, ModelState); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } Poi.Name = pointOfInterestToPatch.Name; Poi.Description = pointOfInterestToPatch.Description; return(NoContent()); }
public IActionResult UpdatePointOfInterest(int cityId, int poiID, [FromBody] PointOfIterestForCreationDto pointOfInterest) { if (pointOfInterest == null || (!ModelState.IsValid)) { return(BadRequest(ModelState)); } var city = CitiesDataStore.Current.Cities.FirstOrDefault(c => c.Id == cityId); var Poi = city.PointOfInterest.FirstOrDefault(p => p.Id == poiID); if (city == null || Poi == null) { _logger.LogError($"The Given cityid #{cityId} was not found"); return(NotFound()); } Poi.Name = pointOfInterest.Name; Poi.Description = pointOfInterest.Description; return(NoContent()); }