Exemplo n.º 1
0
        public async Task <IActionResult> UpdateUser(string id, [FromBody] JsonPatchDocument <UserPatchViewModel> patch)
        {
            if (!(await _authorizationService.AuthorizeAsync(this.User, id, AccountManagementOperations.Update)).Succeeded)
            {
                return(new ChallengeResult());
            }


            if (ModelState.IsValid)
            {
                if (patch == null)
                {
                    return(BadRequest($"{nameof(patch)} cannot be null"));
                }


                ApplicationUser appUser = await _accountManager.GetUserByIdAsync(id);

                if (appUser == null)
                {
                    return(NotFound(id));
                }


                UserPatchViewModel userPVM = _mapper.Map <UserPatchViewModel>(appUser);
                patch.ApplyTo(userPVM, (e) => AddError(e.ErrorMessage));

                if (ModelState.IsValid)
                {
                    _mapper.Map <UserPatchViewModel, ApplicationUser>(userPVM, appUser);
                }
            }

            return(BadRequest(ModelState));
        }
        public async Task <IActionResult> UpdateUser(string id, [FromBody] JsonPatchDocument <UserPatchViewModel> patch)
        {
            if (!(await _authorizationService.AuthorizeAsync(User, id, AccountManagementOperations.Update)).Succeeded)
            {
                return(new ChallengeResult());
            }


            if (ModelState.IsValid)
            {
                if (patch == null)
                {
                    return(BadRequest($"{nameof(patch)} cannot be null"));
                }


                ApplicationUser appUser = await _accountManager.GetUserByIdAsync(id);

                if (appUser == null)
                {
                    return(NotFound(id));
                }


                UserPatchViewModel userPvm = Mapper.Map <UserPatchViewModel>(appUser);
                patch.ApplyTo(userPvm, ModelState);


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

                Mapper.Map(userPvm, appUser);

                var result = await _accountManager.UpdateUserAsync(appUser);

                if (result.Succeeded)
                {
                    return(NoContent());
                }


                AddError(result.Errors);
            }

            return(BadRequest(ModelState));
        }
Exemplo n.º 3
0
        public async Task <IActionResult> UpdateUser(string id, [FromBody] JsonPatchDocument <UserPatchViewModel> patch)
        {
            if (!await _authorizationService.AuthorizeAsync(this.User, id, AuthPolicies.ManageUserByUserIdPolicy))
            {
                return(new ChallengeResult());
            }


            if (ModelState.IsValid)
            {
                if (patch == null)
                {
                    return(BadRequest($"{nameof(patch)} cannot be empty"));
                }


                ApplicationUser appUser = await _accountManager.GetUserByIdAsync(id);

                if (appUser == null)
                {
                    return(NotFound(id));
                }


                UserPatchViewModel userPVM = Mapper.Map <UserPatchViewModel>(appUser);
                patch.ApplyTo(userPVM, ModelState);


                if (ModelState.IsValid)
                {
                    Mapper.Map <UserPatchViewModel, ApplicationUser>(userPVM, appUser);

                    var result = await _accountManager.UpdateUserAsync(appUser);

                    if (result.Item1)
                    {
                        return(NoContent());
                    }


                    AddErrors(result.Item2);
                }
            }

            return(BadRequest(ModelState));
        }
        public async Task Patch_ShouldReturnOk()
        {
            // Arrange
            var user = new User {
                UserId = Guid.NewGuid(), Email = "*****@*****.**", FirstName = "Jing"
            };
            var model = new UserPatchViewModel {
                FirstName = "SuperJing"
            };

            Mock.Mock <IUserService>().Setup(x => x.GetUser(user.UserId)).Returns(Task.FromResult(user));

            // Act
            var retVal = await Controller.Patch(user.UserId, model);

            // Assert
            Assert.That(retVal, Is.Not.Null);
            Assert.That(retVal, Is.TypeOf <OkResult>());
            Mock.Mock <IUserService>().Verify(x => x.UpdateUser(It.Is <User>(y => y.FirstName == model.FirstName)), Times.Once);
        }
Exemplo n.º 5
0
        public async Task <IHttpActionResult> Patch(Guid id, UserPatchViewModel model)
        {
            if (model == null)
            {
                return(BadRequest());
            }

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

            var user = await _userService.GetUser(id).ConfigureAwait(false);

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

            _mapping.Map(model, user);
            await _userService.UpdateUser(user).ConfigureAwait(false);

            return(Ok());
        }