public AlunoDTO SalvarAluno(AlunoDTO alunoDto) { var transaction = this.alunoRepository.GetTransaction(); try { Aluno aluno; if (alunoDto.Id.HasValue) { aluno = alunoRepository.GetById(alunoDto.Id.Value); aluno.Nome = alunoDto.Nome; aluno.RG = alunoDto.RG; aluno.CPF = alunoDto.CPF; aluno.OrgaoEmissor = alunoDto.OrgaoEmissor; aluno.Sexo = alunoDto.Sexo; aluno.Naturalidade = alunoDto.Naturalidade; aluno.Naturalidade = alunoDto.Naturalidade; aluno.NomePai = alunoDto.NomePai; aluno.NomeMae = alunoDto.NomeMae; aluno.Endereco = alunoDto.Endereco; aluno.CEP = alunoDto.CEP; aluno.Bairro = alunoDto.Bairro; aluno.Cidade = alunoDto.Cidade; aluno.Complemento = alunoDto.Complemento; aluno.DataMatricula = alunoDto.DataMatricula; aluno.DataNascimento = alunoDto.DataNascimento; aluno.DataValidade = alunoDto.DataValidade; aluno.Telefone = alunoDto.Telefone; aluno.Celular = alunoDto.Celular; aluno.Email = alunoDto.Email; aluno.CursoAnterior = alunoDto.CursoAnterior; } else { aluno = alunoDto.ToEntity(); aluno.TurmasAluno = new List <TurmaAluno>(); alunoRepository.Add(aluno); } alunoRepository.SaveChanges(); transaction.Commit(); transaction.Dispose(); return(new AlunoDTO(alunoRepository.GetById(aluno.Id))); } catch (Exception ex) { transaction.Rollback(); transaction.Dispose(); if (ex.InnerException.Message.Contains("cpf_UNIQUE")) { throw new BusinessException("Já existe um aluno com o CPF cadastrado."); } log.Error("Erro ao salvar aluno.", ex); throw new BusinessException("Erro desconhecido ao salvar aluno."); } }