public async Task <IActionResult> UpdateUser(UserProfileViewModel model) { if (ModelState.IsValid) { if ((this.User.Identity.Name != model.UserName) && !this.User.IsInRole("Admin")) { return(NotFound()); } var user = await _userHelper.GetUserByEmailAsync(model.UserName); if (user != null) { user = _converterHelper.ChangerUserProfileViewModelToUser(model, user); var response = await _userHelper.UpdateUserAsync(user); if (model.Doctor != null) { model.Doctor.SpecializationId = model.SpecializationId; model.Doctor.Specialization = await _specializationRepository.GetByIdAsync(model.SpecializationId); await _doctorRepository.UpdateAsync(model.Doctor); } if (response.Succeeded) { ViewBag.UserMessage = "User update!"; } else { ModelState.AddModelError(string.Empty, response.Errors.FirstOrDefault().Description); } } else { ModelState.AddModelError(string.Empty, "User not found!"); } } return(RedirectToAction("Profile", new { username = model.UserName })); }