public async Task <IActionResult> RegisterAsync([FromForm] CreateUserViewModel userViewModel) { if (ModelState.IsValid) { var dbUser = await _userManager.FindByEmailAsync(userViewModel.Email); if (dbUser != null) { return(Error("Имейлът е зает")); } var user = await _membersService.BuildUser(userViewModel); IdentityResult result = await _userManager.CreateAsync(user, userViewModel.Password); if (result.Succeeded) { if (!await _roleManager.RoleExistsAsync(userViewModel.Role.ToString())) { await _roleManager.CreateAsync(new IdentityRole(userViewModel.Role.ToString())); } await _userManager.AddToRoleAsync(user, userViewModel.Role.ToString()); await _signInManager.SignInAsync(user, isPersistent : false); return(new JsonResult(await GetLoginCredentials(user))); } return(Errors(result)); } var errors = ModelState.Values.Where(v => v.Errors.Any()).SelectMany(v => v.Errors.Select(e => e.ErrorMessage)); var message = string.Join(Environment.NewLine, errors); return(Error(message)); }