コード例 #1
0
        public IActionResult UpdatePhotographer(Guid id, [FromBody] PhotographerForUpdateDto photographer)
        {
            if (photographer == null)
            {
                return(BadRequest());
            }

            if (!ModelState.IsValid)
            {
                return(new UnprocessableEntityObjectResult(ModelState));
            }

            if (!_magnumPhotosRepository.PhotographerExists(id))
            {
                return(NotFound());
            }

            var photographerFromRepo = _magnumPhotosRepository.GetPhotographer(id);

            if (photographerFromRepo == null)
            {
                var photographerToAdd = Mapper.Map <Photographer> (photographer);
                photographerToAdd.Id = id;

                _magnumPhotosRepository.AddPhotographer(photographerToAdd);

                if (!_magnumPhotosRepository.Save())
                {
                    throw new Exception($"Upserting photographer {id} failed on save.");
                }

                var photographerToReturn = Mapper.Map <Photographer> (photographerToAdd);

                return(CreatedAtRoute("GetPhotographer",
                                      new { id = photographerToReturn.Id },
                                      photographerToReturn));
            }

            Mapper.Map(photographer, photographerFromRepo);

            if (!_magnumPhotosRepository.Save())
            {
                throw new Exception($"Updating photographer {id} failed on save.");
            }

            return(NoContent());
        }
コード例 #2
0
        public IActionResult PartiallyUpdatePhotographer(Guid id, [FromBody] JsonPatchDocument <PhotographerForUpdateDto> patchDoc)
        {
            if (patchDoc == null)
            {
                return(BadRequest());
            }

            if (!_magnumPhotosRepository.PhotographerExists(id))
            {
                return(NotFound());
            }

            var photographerFromRepo = _magnumPhotosRepository.GetPhotographer(id);

            if (photographerFromRepo == null)
            {
                var photographerDto = new PhotographerForUpdateDto();
                patchDoc.ApplyTo(photographerDto, ModelState);

                TryValidateModel(photographerDto);

                if (!ModelState.IsValid)
                {
                    return(new UnprocessableEntityObjectResult(ModelState));
                }

                var photographerToAdd = Mapper.Map <Photographer> (photographerDto);
                photographerToAdd.Id = id;

                _magnumPhotosRepository.AddPhotographer(photographerToAdd);

                if (!_magnumPhotosRepository.Save())
                {
                    throw new Exception($"Upserting photographer {id} failed on save.");
                }

                var photographerToReturn = Mapper.Map <Photographer> (photographerToAdd);
                return(CreatedAtRoute("GetPhotographer",
                                      new { id = photographerToReturn.Id },
                                      photographerToReturn));
            }

            var photographerToPatch = Mapper.Map <PhotographerForUpdateDto> (photographerFromRepo);

            patchDoc.ApplyTo(photographerToPatch, ModelState);

            TryValidateModel(photographerToPatch);

            if (!ModelState.IsValid)
            {
                return(new UnprocessableEntityObjectResult(ModelState));
            }

            Mapper.Map(photographerToPatch, photographerFromRepo);

            if (!_magnumPhotosRepository.Save())
            {
                throw new Exception($"Patching photographer {id} failed on save.");
            }

            return(NoContent());
        }