private async Task AddAdminUser(string adminLogin, string adminPassword, string adminEmail) { var admin = await userManager.FindByNameAsync(adminLogin); if (admin == null) { admin = new User() { UserName = adminLogin, Email = adminEmail }; var identityResult = await userManager.CreateAsync(admin, adminPassword); if (!identityResult.Succeeded) { throw new Exception("Can not create admin user"); } var createdAdmin = await userManager.FindByNameAsync(adminLogin); await parameterValuesRepository.AddAllParameterValuesForUserAsync(createdAdmin.Id); } foreach (var role in UserRoles.Roles) { if (!await userManager.IsInRoleAsync(admin, role)) { await userManager.AddToRoleAsync(admin, role); } } }
public async Task <IActionResult> Register(RegisterViewModel model) { IActionResult result = View(model); if (!ModelState.IsValid) { return(result); } User user = new User { Email = model.Email, UserName = model.Login, }; var identityResult = await userManager.CreateAsync(user, model.Password); if (identityResult.Succeeded) { await signInManager.SignInAsync(user, false); var currentUser = await userManager.FindByNameAsync(model.Login); if (currentUser != null) { try { await parameterValuesRepository.AddAllParameterValuesForUserAsync(currentUser.Id); result = RedirectToAction("Index", "Home"); } catch (Exception ex) { result = StatusCode(StatusCodes.Status500InternalServerError, ex); } } else { ModelState.AddModelError(string.Empty, $"Internal error on getting user with Id {model.Login}, please note developers"); } } else { foreach (var error in identityResult.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } return(result); }