public async Task <IActionResult> Register(RegisterVMCompanyUser model, string returnUrl = null) { string CompID_String = User.Claims.Where(r => r.Type == "CompanyID").FirstOrDefault().Value; int CompID = Convert.ToInt32(CompID_String); model.CompanyID = CompID; ViewData["ReturnUrl"] = returnUrl; int NoUserAllowed = 0; if (_context.CompanyProfile.Where(r => r.CompanyID == CompID).Any() == true) { NoUserAllowed = _context.CompanyProfile.Where(r => r.CompanyID == CompID).FirstOrDefault().NoOfCompanyUsersAllowed; model.NoUserAllowed = NoUserAllowed; } int UserCount = 0; UserCount = _context.Users.Where(r => r.CompanyID == CompID).Count(); NoUserAllowed = NoUserAllowed + 3; if (NoUserAllowed > UserCount) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email, CompanyID = model.CompanyID }; var result = await _userManager.CreateAsync(user, model.Password); if (result.Succeeded) { for (int i = 0; i < model.SelectedRoles.Count(); i++) { string AA = model.SelectedRoles[i].ToString(); await _userManager.AddToRoleAsync(user, AA); } await _userManager.AddToRoleAsync(user, "BiznsBook"); await _userManager.AddClaimAsync(user, new Claim("CompanyID", CompID_String)); // Send an email with this link var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: HttpContext.Request.Scheme); await _emailSender.SendEmailAsync(model.Email, "Confirm your account", $"Please confirm your account by clicking this link: <a href='{callbackUrl}'>link</a>"); _logger.LogInformation(3, "User created a new account with password."); return(RedirectToAction("Index", "Home", new { area = "CompanyAdmin" })); } } } List <IdentityRole> RoleList; RoleList = _context.Roles.Where(r => r.Name != "SiteAdmin").Where(r => r.Name != "BiznsBook").Where(r => r.Name != "CompanyAdmin").OrderByDescending(r => r.Name).ToList(); model.RoleList = RoleList; return(View(model)); }
public IActionResult Register(string returnUrl = null) { ViewData["ReturnUrl"] = returnUrl; List <IdentityRole> RoleList; string CompId = User.Claims.Where(r => r.Type == "CompanyID").FirstOrDefault().Value; int CompID = Convert.ToInt32(CompId); RoleList = _context.Roles.Where(r => r.Name != "SiteAdmin").Where(r => r.Name != "BiznsBook").Where(r => r.Name != "CompanyAdmin").OrderByDescending(r => r.Name).ToList(); RegisterVMCompanyUser model = new RegisterVMCompanyUser(); model.RoleList = RoleList; if (_context.CompanyProfile.Where(r => r.CompanyID == CompID).Any() == true) { model.NoUserAllowed = _context.CompanyProfile.Where(r => r.CompanyID == CompID).FirstOrDefault().NoOfCompanyUsersAllowed; } return(View(model)); }