コード例 #1
0
        public IActionResult PartiallyUpdateDirector(Guid directorId,
                                                     JsonPatchDocument <DirectorForUpdateDto> patchDocument)
        {
            var directorFromDb = _unitOfWork.Directors.GetDirector(directorId);

            if (directorFromDb == null)
            {
                var directorDto = new DirectorForUpdateDto();
                patchDocument.ApplyTo(directorDto, ModelState);

                if (!TryValidateModel(directorDto))
                {
                    return(ValidationProblem(ModelState));
                }

                return(UpsertDirector(directorId, directorDto));
            }

            var directorToPatch = _mapper.Map <DirectorForUpdateDto>(directorFromDb);

            patchDocument.ApplyTo(directorToPatch, ModelState);

            if (!TryValidateModel(directorToPatch))
            {
                return(ValidationProblem(ModelState));
            }

            _mapper.Map(directorToPatch, directorFromDb);

            SaveDirectorInDB(directorFromDb);

            return(NoContent());
        }
コード例 #2
0
        public IActionResult UpdateDirector(Guid directorId, DirectorForUpdateDto directorToBeUpdated)
        {
            var directorFromDb = _unitOfWork.Directors.GetDirector(directorId);

            if (directorFromDb == null)
            {
                return(UpsertDirector(directorId, directorToBeUpdated));
            }

            _mapper.Map(directorToBeUpdated, directorFromDb);
            SaveDirectorInDB(directorFromDb);

            return(NoContent());
        }
コード例 #3
0
        private IActionResult UpsertDirector(Guid directorId, DirectorForUpdateDto directorToBeUpdated)
        {
            var directorToAdd = _mapper.Map <Director>(directorToBeUpdated);

            if (_unitOfWork.Directors.DirectorExists(directorToAdd))
            {
                return(Conflict(new { message = $"This Director already exists in the database!" }));
            }

            directorToAdd.Guid = directorId;
            SaveDirectorInDB(directorToAdd);

            var directorToReturn = _mapper.Map <DirectorDto>(directorToAdd);

            return(CreatedAtRoute("GetDirector",
                                  new { directorId = directorToReturn.Id },
                                  directorToReturn));
        }