In kentico 10 we using bulk user upload from excel, the field name is Username, Email, fname, lname, Role1, Role2 and Role3.
The user will be insert working fine.
But, Roles are not insert. If I debug the code, the cursor not going to inside the if condition.
What I have tried:
private UserInfo CreateUser(UserDto userDto, SiteInfo site)
{
var newUser = new UserInfo
{
UserName = userDto.UserName,
UserEnabled = true,
FirstName = userDto.FirstName,
LastName = userDto.LastName,
FullName = userDto.FirstName + " " + userDto.LastName,
Email = userDto.Email,
SiteIndependentPrivilegeLevel = CMS.Base.UserPrivilegeLevelEnum.None
};
var newUserSettings = newUser.UserSettings ?? new UserSettingsInfo();
UserInfoProvider.SetPassword(newUser, userDto.UserPassword);
newUserSettings.UserPhone = userDto.PhoneNumber;
UserInfoProvider.SetUserInfo(newUser);
UserInfoProvider.AddUserToSite(newUser.UserName, site.SiteName);
var rolelist = new[] { $"{userDto.Role1}", userDto.Role2, userDto.Role3}
.Where(af => !string.IsNullOrWhiteSpace(af));
foreach (var u in rolelist)
{
List<string> userRoles = new List<string> { userDto.Role1, userDto.Role2, userDto.Role3 };
foreach (string r in userRoles)
{
var roles = RoleInfoProvider.GetRoles().WhereEquals("LOWER(RoleDescription)", r.ToLower()).FirstOrDefault();
if (userRoles != null)
{
UserInfoProvider.AddUserToRole(newUser.UserID, roles.RoleID);
}
}
}
return newUser;
}