public async Task <IActionResult> Edit(string userId) { var user = await _userManager.FindByIdAsync(userId); if (user == null) { return(NotFound()); } var ViewModel = new ProfileFromViewModel { Id = userId, UserName = user.UserName, Email = user.Email, }; return(View(ViewModel)); }
public async Task <IActionResult> Edit(ProfileFromViewModel model) { if (!ModelState.IsValid) { return(View(model)); } var user = await _userManager.FindByIdAsync(model.Id); if (user == null) { return(NotFound()); } var userWithSameEmail = await _userManager.FindByEmailAsync(model.Email); if (userWithSameEmail != null && userWithSameEmail.Id != model.Id) { ModelState.AddModelError("Email", "This email is already assiged to anther user"); return(View(model)); } var userWithSameUserName = await _userManager.FindByNameAsync(model.UserName); if (userWithSameUserName != null && userWithSameUserName.Id != model.Id) { ModelState.AddModelError("UserName", "This userName is already assiged to anther user"); return(View(model)); } user.FirstName = model.FirstName; user.LastName = model.LastName; user.UserName = model.UserName; user.Email = model.Email; await _userManager.UpdateAsync(user); return(RedirectToAction(nameof(Index))); }