Esempio n. 1
0
        public IActionResult UpdateUser([FromRoute] Guid userId, [FromBody] MyUserUpdateDTO user)
        {
            if (user is null || userId == Guid.Empty)
            {
                return(BadRequest());
            }

            if (!ModelState.IsValid)
            {
                return(UnprocessableEntity(ModelState));
            }

            var userUpdate = new UserEntity(userId);

            mapper.Map(user, userUpdate);

            bool isInsert;

            userRepository.UpdateOrInsert(userUpdate, out isInsert);

            if (!isInsert)
            {
                return(NoContent());
            }

            return(CreatedAtRoute(
                       nameof(GetUserById),
                       new { userId = userUpdate.Id },
                       userUpdate.Id));
        }
Esempio n. 2
0
        public IActionResult PartiallyUpdateUser([FromRoute] Guid userId, [FromBody] JsonPatchDocument <MyUserUpdateDTO> patchDoc)
        {
            if (patchDoc is null)
            {
                return(BadRequest());
            }

            var user = userRepository.FindById(userId);

            if (user is null)
            {
                return(NotFound());
            }

            var updateDto = new MyUserUpdateDTO();

            patchDoc.ApplyTo(updateDto, ModelState);

            // Валидация по атрибутам
            var isValid = TryValidateModel(updateDto);

            // Другие валидации...

            if (!isValid)
            {
                return(UnprocessableEntity(ModelState));
            }

            mapper.Map(updateDto, user);
            userRepository.Update(user);

            return(NoContent());
        }