public async Task<ActionResult> ProviderRegister(ProviderRegisterViewModel model) { if(ModelState.IsValid) { var user = model.GetUser(); var provider = model.GetProviderDto(); var phone = model.GetPhone(); var address = model.GetAddress(); var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { await _hcSerivice.CreateProviderAsync(provider, phone, address); var currentUser = await UserManager.FindByEmailAsync(user.Email); var roleResult = await UserManager.AddToRoleAsync(currentUser.Id, "Provider"); UserManager.AddClaim(currentUser.Id, new Claim(ClaimTypes.Role, "Provider")); if (roleResult.Succeeded) { await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false); return RedirectToAction("Index", "Home"); } AddErrors(roleResult); } AddErrors(result); } return View(model); }