/// <summary> /// This method adds a user to a role /// </summary> /// <param name="dvm"></param> /// <returns></returns> public bool AddUserToRole(AspNetUserRoleDVM dvm) { bool status = false; if (dvm != null) { AspNetUser a = userManager.FindByIdAsync(dvm.UserId).Result; string roleName = roleManager.FindByIdAsync(dvm.RoleId).Result.Name ?? ""; try { if (!string.IsNullOrEmpty(roleName)) { ; if (userManager.AddToRoleAsync(a, roleName).Result.Succeeded) { status = true; } } } catch (Exception ex) { throw ex; } } return(status); }
/// <summary> /// This method adds a new user /// </summary> /// <param name="dvm"></param> /// <returns></returns> public async Task <bool> AddUserAndSignIn(AspNetUserDVM dvm, string role) { bool status = false; if (dvm != null && !string.IsNullOrEmpty(role)) { AspNetUser a = mapper.Map <AspNetUser>(dvm); a.UserName = dvm.Email; try { var roleD = roleManager.FindByNameAsync(role).Result; AspNetUser chk = userManager.FindByEmailAsync(dvm.Email).Result; if (roleD != null && chk != null) { var rolechk = userManager.GetRolesAsync(chk).Result; if (rolechk.Count() > 0) { if (signInManager.PasswordSignInAsync(chk, dvm.PasswordHash, true, false).Result.Succeeded) { status = true; } } else { var rdvm = new AspNetUserRoleDVM { RoleId = roleD.Id, UserId = chk.Id }; if (AddUserToRole(rdvm)) { if (signInManager.PasswordSignInAsync(a, dvm.PasswordHash, true, false).Result.Succeeded) { status = true; } } } } else if (roleD != null && chk == null) { var d = userManager.CreateAsync(a, dvm.PasswordHash); if (d.Result.Succeeded) { var luser = userManager.FindByEmailAsync(dvm.Email).Result; var rdvm = new AspNetUserRoleDVM { RoleId = roleD.Id, UserId = luser.Id }; if (AddUserToRole(rdvm)) { if (signInManager.PasswordSignInAsync(a, dvm.PasswordHash, false, false).Result.Succeeded) { status = true; } } } } else if (roleD == null && chk == null) { var roleDVM = new AspNetRoleDVM { Name = role }; if (await AddRole(roleDVM)) { var d = userManager.CreateAsync(a, dvm.PasswordHash); if (d.Result.Succeeded) { await userManager.AddToRoleAsync(a, role); if (signInManager.PasswordSignInAsync(a, dvm.PasswordHash, true, false).Result.Succeeded) { status = true; } } } } } catch (Exception ex) { throw ex; } } return(status); }