Exemple #1
0
        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 }));
        }