public IActionResult Post([FromBody]
                                  OrientacaoRequest orientacaoRequest)
        {
            var orientacao = new Orientacao
            {
                ProjetoId         = orientacaoRequest.ProjetoId,
                ProfessorPessoaId = orientacaoRequest.ProfessorPessoaId,
                DataRegistro      = orientacaoRequest.DataRegistro,
                TipoOrientacaoId  = orientacaoRequest.TipoOrientacaoId
            };

            contexto.Orientacao.Add(orientacao);
            contexto.SaveChanges();

            var orientacaoRetorno = contexto.Orientacao.Where
                                        (x => x.ProfessorPessoaId == orientacao.ProfessorPessoaId && x.ProjetoId == orientacao.ProjetoId)
                                    .FirstOrDefault();

            OrientacaoResponse response = new OrientacaoResponse();

            if (orientacaoRetorno != null)
            {
                response.ProfessorPessoaId = orientacaoRetorno.ProfessorPessoaId;
                response.ProjetoId         = orientacaoRetorno.ProjetoId;
                response.TipoOrientacaoId  = orientacaoRetorno.TipoOrientacaoId;
                response.DataRegistro      = orientacaoRetorno.DataRegistro;
            }

            return(StatusCode(200, response));
        }
        public IActionResult Put(int id, int id2, [FromBody] OrientacaoRequest orientacaoRequest)
        {
            try
            {
                var orientacao = contexto.Orientacao.Where
                                     (x => x.IdPessoa == id && x.IdProjeto == id2)
                                 .FirstOrDefault();

                if (orientacao != null)
                {
                    orientacao.DataRegistro = orientacaoRequest.DataRegistro;
                }
                contexto.Entry(orientacao).State =
                    Microsoft.EntityFrameworkCore.EntityState.Modified;

                contexto.SaveChanges();
            }
            catch (Exception ex)
            {
                return(StatusCode(400, ex.InnerException.Message.FirstOrDefault()));
            }

            var orientacaoRetorno = contexto.Orientacao.FirstOrDefault(
                x => x.IdPessoa == id && x.IdProjeto == id2
                );

            OrientacaoResponse retorno = new OrientacaoResponse()
            {
                IdPessoa     = orientacaoRetorno.IdPessoa,
                IdProjeto    = orientacaoRetorno.IdProjeto,
                DataRegistro = orientacaoRetorno.DataRegistro
            };

            return(StatusCode(200, retorno));
        }
        public IActionResult Post([FromBody]
                                  OrientacaoRequest orientacaoRequest)
        {
            var orientacao = new Orientacao
            {
                IdProjeto        = orientacaoRequest.IdProjeto,
                IdPessoa         = orientacaoRequest.IdPessoa,
                IdTipoOrientacao = orientacaoRequest.IdTipoOrientacao,
                DataRegistro     = orientacaoRequest.DataRegistro
            };

            contexto.Orientacao.Add(orientacao);
            contexto.SaveChanges();

            var orientacaoRetorno = contexto.Orientacao.Where
                                        (x => x.IdProjeto == orientacao.IdProjeto && x.IdPessoa == orientacao.IdPessoa)
                                    .FirstOrDefault();

            OrientacaoResponse response = new OrientacaoResponse();

            if (orientacaoRetorno != null)
            {
                response.IdProjeto        = orientacaoRetorno.IdProjeto;
                response.IdPessoa         = orientacaoRetorno.IdPessoa;
                response.IdTipoOrientacao = orientacaoRetorno.IdTipoOrientacao;
                response.DataRegistro     = orientacaoRetorno.DataRegistro;
            }

            return(StatusCode(200, response));
        }
        public IActionResult Put(int idProjeto, int idPessoa, [FromBody] OrientacaoRequest orientacaoRequest)
        {
            try
            {
                var orientacao = contexto.Orientacao.Where(x => x.IdProjeto == idProjeto && x.IdPessoa == idPessoa)
                                 .Include(i => i.Professor).ThenInclude(i => i.Pessoa)
                                 .FirstOrDefault();

                if (orientacao != null)
                {
                    orientacao.IdPessoa         = orientacaoRequest.IdPessoa;
                    orientacao.IdProjeto        = orientacaoRequest.IdProjeto;
                    orientacao.IdTipoOrientacao = orientacaoRequest.IdTipoOrientacao;
                    orientacao.DataRegistro     = orientacaoRequest.DataRegistro;
                    contexto.SaveChanges();
                }

                contexto.Entry(orientacao).State = EntityState.Modified;
            }
            catch (Exception ex)
            {
                return(StatusCode(400, ex.InnerException.Message.FirstOrDefault()));
            }

            var orientacaoRetorno = contexto.Orientacao.Where(x => x.IdProjeto == idProjeto && x.IdPessoa == idPessoa)
                                    .Include(i => i.Professor).ThenInclude(i => i.Pessoa)
                                    .FirstOrDefault();

            return(StatusCode(200, new OrientacaoResponse()
            {
                IdPessoa = orientacaoRetorno.IdPessoa,
                IdProjeto = orientacaoRetorno.IdProjeto,
                IdTipoOrientacao = orientacaoRetorno.IdTipoOrientacao,
                DataRegistro = orientacaoRetorno.DataRegistro,
                NomeProfessor = orientacaoRetorno.Professor.Pessoa.Nome
            }));
        }