Пример #1
0
        public virtual async Task UpdateOneAsync(Guid userId, Guid modifierUserId, EditUsersManagementViewModel model)
        {
            ApplicationUser user = FindOne(userId);

            var isUsernameChanged = user.Email != model.Email;

            if (isUsernameChanged)
            {
                var userByNewEmail = _userManager.Users.SingleOrDefault(x => x.Email == model.Email && !x.IsDeleted);
                Require.Objects.ShouldBeNull <BadRequestException>(userByNewEmail, $"User with email {model.Email} already exists.");

                user.Email    = model.Email;
                user.UserName = model.Email;
            }

            user.FirstName   = model.FirstName;
            user.LastName    = model.LastName;
            user.PhoneNumber = model.PhoneNumber;
            user.ModifiedAt  = DateHelper.GetUtc();
            user.ModifiedBy  = modifierUserId.ToString();

            var updateResult = await _userManager.UpdateAsync(user);

            Require.Booleans.IsTrue <BadRequestException>(updateResult.Succeeded, updateResult.GetErrors);

            await ReAssignRolesAsync(user, model.Roles);
        }
        public async Task <ActionResult <GetUsersManagementViewModel> > EditAsync([FromRoute] Guid id, [FromBody] EditUsersManagementViewModel model)
        {
            var userModifier = User.Identity.GetUser();

            await _usersManagementService.UpdateOneAsync(id, userModifier.Id, model);

            return(Ok());
        }