public IActionResult Edit(Attorney attorney) { TempData.Keep(); if (!_usersRepo.VerifyUsername(attorney.User.Username) && !_usersRepo.VerifyAttorneyIDAndUsername(attorney.Id, attorney.UserId)) { ModelState.AddModelError("uqUsername", "El usuario ingresado ya existe"); } if (!_attorneysRepo.VerifyEmail(attorney.Email) && !_attorneysRepo.VerifyAttorneyIDAndEmailOwnership(attorney.Id, attorney.Email)) { ModelState.AddModelError("uqEmail", "El correo ingresado ya existe"); } if (!_attorneysRepo.VerifyNotaryCode(attorney.NotaryCode) && !_attorneysRepo.verifyAttorneyIDAndNotaryCodeOwnership(attorney.Id, attorney.NotaryCode)) { ModelState.AddModelError("uqNotaryCode", "El código de notario ingresado ya existe"); } if (!ModelState.IsValid) { NewAttorneyViewModel viewModel = new NewAttorneyViewModel { Departments = _departmentsRepo.Departments.ToList() }; viewModel.Attorney = attorney; return(View(viewModel)); } else { bool passwordModified = false; if (attorney.User.Password != null && (attorney.User.Password != " " || attorney.User.Password != "")) { passwordModified = true; string passwordOriginal = attorney.User.Password; string passwordHashed = _cryptoManager.HashString(attorney.User.Password); attorney.User.Password = passwordHashed; } _attorneysRepo.Save(attorney, passwordModified); _usersRepo.Save(attorney.User); TempData["updated"] = true; return(RedirectToAction("Admin", new { filter = TempData["filter"] })); } }