public JsonResult Salvar(Teacher teacher) { var retorno = 1; var login = GetFormatedUserLoginAndPassword(teacher.Person); var mensagem = teacher.Id == 0 ? Messages.SUCCESSFULLY_INSERTED_RECORD + login : Messages.SUCCESSFULLY_UPDATED_RECORD + login; try { var disciplinas = TempData[DISCIPLINA] as List <Courses>; foreach (var item in disciplinas) { teacher.Courses.Add(_servicoCourse.GetById(item.Id)); } var usuario = _servicoUser.SelectWithFilter(a => a.Person.Id == teacher.Person.Id).FirstOrDefault() ?? new User { Person = new Person() }; BuildLoggedUser(teacher.Person, usuario, (int)AccessProfileEnum.Docente); _servicoPerson.ValidadePerson(teacher.Person); if (_servicoTeacher.IsRequiredFieldsFilled(teacher)) { _servicoTeacher.SaveAndReturn(teacher); usuario.Person = _servicoPerson.GetById(teacher.Person.Id); _servicoUser.SaveAndReturn(usuario); } } catch (Exception ex) { mensagem = GetErrorMessageFromExceptionType(ex); } return(Json(new { retorno, msg = mensagem, docenteID = teacher.Id })); }