Example #1
0
        public static Task <IdentityResult> GenerateClientSecretAsync(this UserManager <IdentityUser> userManager, IdentityUser user)
        {
            var update = new UserValues
            {
                ClientSecret = RandomHash.New()
            };

            return(update.SyncClaims(userManager, user));
        }
Example #2
0
        public static async Task UpdateAsync(this UserManager <IdentityUser> userManager, IdentityUser user, UserValues values)
        {
            Guard.NotNull(user, nameof(user));
            Guard.NotNull(values, nameof(values));

            if (!string.IsNullOrWhiteSpace(values.Email) && values.Email != user.Email)
            {
                await DoChecked(() => userManager.SetEmailAsync(user, values.Email));
                await DoChecked(() => userManager.SetUserNameAsync(user, values.Email));
            }

            await DoChecked(() => values.SyncClaims(userManager, user));

            if (!string.IsNullOrWhiteSpace(values.Password))
            {
                await DoChecked(() => userManager.RemovePasswordAsync(user));
                await DoChecked(() => userManager.AddPasswordAsync(user, values.Password));
            }
        }
Example #3
0
        public static async Task UpdateAsync(this UserManager <IdentityUser> userManager, IdentityUser user, UserValues values)
        {
            if (user == null)
            {
                throw new DomainObjectNotFoundException("Id", typeof(IdentityUser));
            }

            if (!string.IsNullOrWhiteSpace(values.Email) && values.Email != user.Email)
            {
                await DoChecked(() => userManager.SetEmailAsync(user, values.Email), "Cannot update email.");
                await DoChecked(() => userManager.SetUserNameAsync(user, values.Email), "Cannot update email.");
            }

            await DoChecked(() => values.SyncClaims(userManager, user), "Cannot update user.");

            if (!string.IsNullOrWhiteSpace(values.Password))
            {
                await DoChecked(() => userManager.RemovePasswordAsync(user), "Cannot replace password.");
                await DoChecked(() => userManager.AddPasswordAsync(user, values.Password), "Cannot replace password.");
            }
        }
Example #4
0
        public static async Task <UserWithClaims> CreateAsync(this UserManager <IdentityUser> userManager, IUserFactory factory, UserValues values)
        {
            var user = factory.Create(values.Email);

            try
            {
                await DoChecked(() => userManager.CreateAsync(user));
                await DoChecked(() => values.SyncClaims(userManager, user));

                if (!string.IsNullOrWhiteSpace(values.Password))
                {
                    await DoChecked(() => userManager.AddPasswordAsync(user, values.Password));
                }
            }
            catch
            {
                await userManager.DeleteAsync(user);

                throw;
            }

            return((await userManager.ResolveUserAsync(user)) !);
        }
Example #5
0
 public static Task <IdentityResult> SyncClaims(this UserManager <IdentityUser> userManager, IdentityUser user, UserValues values)
 {
     return(values.SyncClaims(userManager, user));
 }