public async Task <IActionResult> Edit(string Email, [FromForm] List <RoleViewModel> user_Login) { if (ModelState.IsValid) { try { PUserRoles user_Invited = new PUserRoles(); var uu = _context.ApplicationUser.Where(x => x.Email == Email).Select(y => new { y.Id }).FirstOrDefault(); ApplicationUser db_user_Login = _context.ApplicationUser.FirstOrDefault(m => m.Id.Equals(uu.Id)); if (db_user_Login == null) { return(NotFound()); } //var roleList = _context.UserInvited.Where(x => x.UserId == db_user_Login.Id).ToList(); //_context.Remove(roleList); //await _context.SaveChangesAsync(); user_Invited.UserId = db_user_Login.Id; //user_Invited.RoleId = "535f2e47-9bf3-4ac9-a298-e866f79b779f"; _context.Add(user_Invited); await _context.SaveChangesAsync(); foreach (var items in user_Login) { user_Invited.UserId = db_user_Login.Id; user_Invited.RoleId = items.Id; _context.Add(user_Invited); await _context.SaveChangesAsync(); } } catch (DbUpdateConcurrencyException) { //if (!Department_MasterExists(department_Master.Id)) //{ // return NotFound(); //} //else //{ // throw; //} } return(RedirectToAction(nameof(IndexAsync))); } return(RedirectToAction(nameof(IndexAsync))); }
public async Task <IActionResult> InviteUser(UserViewModel viewModel, string roleIds) { if (ModelState.IsValid) { var regis = new ApplicationUser { UserName = viewModel.Email, Email = viewModel.Email, IsInvited = true }; var result = await _userManager.CreateAsync(regis, "admin@123"); if (result.Succeeded) { var user = await _userManager.FindByEmailAsync(viewModel.Email); var userRoles = await _userManager.GetRolesAsync(user); await _userManager.RemoveFromRolesAsync(user, userRoles); await _userManager.AddToRolesAsync(user, viewModel.Roles.Where(x => x.Selected).Select(x => x.Name)); var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code)); var callbackUrl = Url.Action("ConfirmEmail", "User_Management", new { userId = user.Id, code = code }, protocol: Request.Scheme); //Url.Action( //"/Account/ConfirmEmail", //pageHandler: null, //values: new { area = "Identity", userId = user.Id, code = code }, //protocol: Request.Scheme); await _emailSender.SendEmailAsync(user.Email, "Confirm your email", $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>."); foreach (string roleId in roleIds.Split(',')) { PUserRoles puserrole = new PUserRoles(); puserrole.UserId = user.Id; puserrole.RoleId = roleId; _context.PUserRoles.Add(puserrole); } await _context.SaveChangesAsync(); if (_userManager.Options.SignIn.RequireConfirmedAccount) { return(RedirectToAction("ConfirmEmailUrl", "User_Management", new { url = callbackUrl })); } else { await _signInManager.SignInAsync(user, isPersistent : false); return(RedirectToAction("Admin", "User")); } } return(RedirectToAction("Admin", "User")); } return(View(viewModel)); }
public async Task <IActionResult> Create([FromForm] InputModel Input, string roleIds, string returnUrl = null) { if (ModelState.IsValid) { try { returnUrl = returnUrl ?? Url.Content("~/"); Input.Password = "******"; var user = new ApplicationUser { UserName = Input.Email, Email = Input.Email, FirstName = Input.FirstName, LastName = Input.LastName }; var result = await _userManager.CreateAsync(user, Input.Password); if (result.Succeeded) { _logger.LogInformation("User created a new account with password."); var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code)); var callbackUrl = Url.Page( "/Account/ConfirmEmail", pageHandler: null, values: new { area = "Identity", userId = user.Id, code = code, returnUrl = returnUrl }, protocol: Request.Scheme); await _emailSender.SendEmailAsync(Input.Email, "Confirm your email", $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>."); if (_userManager.Options.SignIn.RequireConfirmedAccount) { return(RedirectToPage("RegisterConfirmation", new { email = Input.Email, returnUrl = returnUrl })); } else { await _signInManager.SignInAsync(user, isPersistent : false); return(LocalRedirect(returnUrl)); } } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } user.IsInvited = true; _context.ApplicationUser.Update(user); await _context.SaveChangesAsync(); foreach (string roleId in roleIds.Split(',')) { PUserRoles puserrole = new PUserRoles(); puserrole.UserId = user.Id; puserrole.RoleId = roleId; _context.PUserRoles.Add(puserrole); } await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { return(RedirectToAction(nameof(IndexAsync))); } } return(RedirectToAction(nameof(IndexAsync))); }