예제 #1
0
        public IActionResult UpdateLandmarkAll(
            int cityId,
            int landmarkId,
            [FromBody] LandmarkModelUpdate landmark)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var city = CityDataStore.Current.Cities
                       .FirstOrDefault(c => c.Id == cityId);

            if (city == null)
            {
                return(NotFound());
            }

            var landmarkFromData = city.Landmarks
                                   .FirstOrDefault(l => l.Id == landmarkId);

            if (landmarkFromData == null)
            {
                return(NotFound());
            }

            landmarkFromData.Name        = landmark.Name;
            landmarkFromData.Description = landmark.Description;

            return(NoContent());
        }
예제 #2
0
        public IActionResult UpdateLandmarkPartial(
            int cityId,
            int landmarkId,
            [FromBody] JsonPatchDocument <LandmarkModelUpdate> patchDoc)
        {
            if (patchDoc == null)
            {
                return(BadRequest());
            }

            var city = CityDataStore.Current.Cities
                       .FirstOrDefault(c => c.Id == cityId);

            if (city == null)
            {
                return(NotFound());
            }

            var landmarkFromData = city.Landmarks
                                   .FirstOrDefault(l => l.Id == landmarkId);

            if (city == null)
            {
                return(NotFound());
            }

            var landmarkToPatch = new LandmarkModelUpdate()
            {
                Name        = landmarkFromData.Name,
                Description = landmarkFromData.Description,
            };

            //
            patchDoc.ApplyTo(landmarkToPatch, ModelState);
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            landmarkFromData.Name        = landmarkToPatch.Name;
            landmarkFromData.Description = landmarkToPatch.Description;

            return(NoContent());
        }