コード例 #1
0
ファイル: AlunoService.cs プロジェクト: Artbraga/api-ctep
        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.");
            }
        }