public static void InserirResposta(AviQuestao questao, PessoaFisica pessoa, int alternativa, string texto)
        {
            AviQuestaoPessoaResposta resposta = contexto.AviQuestaoPessoaResposta
                                                .Where(pr => pr.Ano == questao.Ano &&
                                                       pr.Semestre == questao.Semestre &&
                                                       pr.CodTipoAvaliacao == questao.CodTipoAvaliacao &&
                                                       pr.NumIdentificador == questao.NumIdentificador &&
                                                       pr.CodOrdem == questao.CodOrdem)
                                                .OrderByDescending(pr => pr.CodRespostaOrdem)
                                                .FirstOrDefault();

            int novaOrdemResposta = resposta != null ? resposta.CodRespostaOrdem + 1 : 1;

            AviQuestaoPessoaResposta novaResposta = new AviQuestaoPessoaResposta
            {
                AviQuestao   = questao,
                PessoaFisica = pessoa
            };

            novaResposta.CodRespostaOrdem = novaOrdemResposta;
            novaResposta.RespAlternativa  = alternativa;
            novaResposta.RespDiscursiva   = texto;
            novaResposta.RespData         = DateTime.Now;

            contexto.AviQuestaoPessoaResposta.Add(novaResposta);
            contexto.SaveChanges();
        }
        public static List <AviQuestaoPessoaResposta> ObterRespostasPessoa(AvalAvi avi, PessoaFisica pessoa)
        {
            List <AviQuestaoPessoaResposta> respostas = contexto.AviQuestaoPessoaResposta
                                                        .Where(pr => pr.Ano == avi.Ano &&
                                                               pr.Semestre == avi.Semestre &&
                                                               pr.CodTipoAvaliacao == avi.CodTipoAvaliacao &&
                                                               pr.NumIdentificador == avi.NumIdentificador &&
                                                               pr.CodPessoaFisica == pessoa.CodPessoa)
                                                        .ToList();

            List <AviQuestaoPessoaResposta> retorno = new List <AviQuestaoPessoaResposta>();

            if (respostas.Count > 0)
            {
                int quantidadeQuestoes = respostas.Max(pr => pr.CodOrdem);
                for (int i = 1; i <= quantidadeQuestoes; i++)
                {
                    AviQuestaoPessoaResposta questao = respostas.Where(pr => pr.CodOrdem == i).OrderByDescending(pr => pr.CodRespostaOrdem).FirstOrDefault();
                    if (questao != null)
                    {
                        retorno.Add(questao);
                    }
                }
            }
            return(retorno);
        }