示例#1
0
    protected virtual async Task UpdateUserByInput(IdentityUser user, IdentityUserCreateOrUpdateDtoBase input)
    {
        if (!string.Equals(user.Email, input.Email, StringComparison.InvariantCultureIgnoreCase))
        {
            (await UserManager.SetEmailAsync(user, input.Email)).CheckErrors();
        }

        if (!string.Equals(user.PhoneNumber, input.PhoneNumber, StringComparison.InvariantCultureIgnoreCase))
        {
            (await UserManager.SetPhoneNumberAsync(user, input.PhoneNumber)).CheckErrors();
        }

        (await UserManager.SetLockoutEnabledAsync(user, input.LockoutEnabled)).CheckErrors();

        user.Name    = input.Name;
        user.Surname = input.Surname;
        (await UserManager.UpdateAsync(user)).CheckErrors();
        user.SetIsActive(input.IsActive);
        if (input.RoleNames != null)
        {
            (await UserManager.SetRolesAsync(user, input.RoleNames)).CheckErrors();
        }
    }
    private async Task AddUsers()
    {
        var adminUser = new IdentityUser(_guidGenerator.Create(), "administrator", "*****@*****.**");

        adminUser.AddRole(_adminRole.Id);
        adminUser.AddClaim(_guidGenerator, new Claim("TestClaimType", "42"));
        await _userRepository.InsertAsync(adminUser);

        var john = new IdentityUser(_testData.UserJohnId, "john.nash", "*****@*****.**");

        john.AddRole(_moderatorRole.Id);
        john.AddRole(_supporterRole.Id);
        john.AddOrganizationUnit(_ou111.Id);
        john.AddOrganizationUnit(_ou112.Id);
        john.AddLogin(new UserLoginInfo("github", "john", "John Nash"));
        john.AddLogin(new UserLoginInfo("twitter", "johnx", "John Nash"));
        john.AddClaim(_guidGenerator, new Claim("TestClaimType", "42"));
        john.SetToken("test-provider", "test-name", "test-value");
        await _userRepository.InsertAsync(john);

        var david = new IdentityUser(_testData.UserDavidId, "david", "*****@*****.**");

        david.AddOrganizationUnit(_ou112.Id);
        await _userRepository.InsertAsync(david);

        var neo = new IdentityUser(_testData.UserNeoId, "neo", "*****@*****.**");

        neo.AddRole(_supporterRole.Id);
        neo.AddClaim(_guidGenerator, new Claim("TestClaimType", "43"));
        neo.AddOrganizationUnit(_ou111.Id);
        await _userRepository.InsertAsync(neo);

        var bob = new IdentityUser(_testData.UserBobId, "bob", "*****@*****.**");

        bob.SetIsActive(false);
        await _userManager.CreateAsync(bob, "1q2w3E*");
    }