public List <AvaliacaoAluno> PegarDadosDaAvaliacaoAlunoPorAvaliacao(int avaliacaoId)
    {
        List <AvaliacaoAluno> avaliacoesDeAlunos = new List <AvaliacaoAluno>();
        AvaliacaoAluno        umaAvaliacaoDeAluno;

        //Conexão
        MySqlConnection db = Connection.getConnection();

        try
        {
            MySqlCommand mySQLcmd = db.CreateCommand();

            //setando a procedure do banco
            mySQLcmd.CommandType = CommandType.StoredProcedure;
            mySQLcmd.CommandText = "Carregar_AvaliacaoDoAluno_Por_Avaliacao";

            mySQLcmd.Parameters.AddWithValue("LOC_AVALIACAO_ID", avaliacaoId);

            //execução sem retorno
            MySqlDataReader rsAvaliacao = mySQLcmd.ExecuteReader();

            //se há linhas
            if (rsAvaliacao.HasRows)
            {
                //enquanto lê cada linha
                while (rsAvaliacao.Read())
                {
                    //criando um aluno para cada linha
                    umaAvaliacaoDeAluno = new AvaliacaoAluno();
                    umaAvaliacaoDeAluno.setId(rsAvaliacao.GetInt32("id"));
                    umaAvaliacaoDeAluno.SetDataRealizacao(rsAvaliacao.GetInt32("data_realizacao"));

                    avaliacoesDeAlunos.Add(umaAvaliacaoDeAluno);
                }
                db.Close();
            }
            else
            {
                //sem resultados
            }
        }
        catch (MySqlException ex)
        {
            throw new ExcecaoSAG("Erro ao listarCCC as avaliacoes por aluno. Código " + ex.ToString());
        }
        catch (ExcecaoSAG ex)
        {
            throw ex;
        }
        finally
        {
            db.Close();
        }
        //retorna a lista de alunos
        return(avaliacoesDeAlunos);
    }
    public AvaliacaoAluno PegarDadosDaAvaliacaoAlunoDeUmAlunoEmUmaAvaliacao(int alunoId, int avaliacaoId)
    {
        AvaliacaoAluno avaliacaoAluno = new AvaliacaoAluno();

        try
        {
            avaliacaoAluno = avaliacaoDAO.PegarDadosDaAvaliacaoAlunoDeUmAlunoEmUmaAvaliacao(alunoId, avaliacaoId);
        }
        catch (ExcecaoSAG ex)
        {
            throw new ExcecaoSAG(ex.getMsg());
        }
        return(avaliacaoAluno);
    }
示例#3
0
        public int SetAvaliacao(AvaliacaoAluno avaliacao)
        {
            int  n = 0;
            bool r = false;

            if (!avaliacao.AvaliarMaisTarde)
            {
                r = Int32.TryParse(avaliacao.Nota, out n);
            }

            var novaEntidade = new tblAvaliacaoAluno()
            {
                dteDataAtualizacao  = DateTime.Now,
                intClientID         = avaliacao.Matricula,
                intNota             = r ? n : 0,
                txtComentario       = avaliacao.Comentario,
                bitAvaliarMaisTarde = avaliacao.AvaliarMaisTarde,
                txtPlataforma       = avaliacao.Plataforma,
                txtVersaoApp        = avaliacao.VersaoApp,
                txtVersaoPlataforma = avaliacao.VersaoPlataforma,
                bitAtivo            = true
            };

            using (var ctx = new DesenvContext())
            {
                var rodadaAtual = ctx.tblRodadaAvaliacao.OrderByDescending(x => x.dteDataCriacao).FirstOrDefault().intID;

                var entidade = ctx.tblAvaliacaoAluno.FirstOrDefault(x => x.intClientID == avaliacao.Matricula &&
                                                                    x.intRodadaID == rodadaAtual);

                if (entidade == null)
                {
                    novaEntidade.intRodadaID = rodadaAtual;
                    ctx.tblAvaliacaoAluno.Add(novaEntidade);
                }
                else
                {
                    entidade.intRodadaID         = rodadaAtual;
                    entidade.dteDataAtualizacao  = DateTime.Now;
                    entidade.intNota             = r ? n : 0;
                    entidade.txtComentario       = avaliacao.Comentario;
                    entidade.bitAvaliarMaisTarde = avaliacao.AvaliarMaisTarde;
                }

                return(ctx.SaveChanges());
            }
        }
    IEnumerator TrazendoDadosDoAlunoSelecionado()
    {
        //carrega a pergunta
        Avaliacao umaAvaliacao = new Avaliacao();

        umaAvaliacao.SetId(selecionado);
        cadastroAvaliacao.Carregar(umaAvaliacao);

        yield return(umaAvaliacao);

        //carrega o aluno
        Aluno umAluno = new Aluno();

        umAluno.SetId(EncontrarAlunoNaDropDownTrazendoId(alunosDD.options[alunosDD.value].text));
        cadastroAluno.Carregar(umAluno);
        yield return(umAluno);

        //carrega a avaliacao do aluno
        AvaliacaoAluno umaAvaliacaoAluno = new AvaliacaoAluno();

        umaAvaliacaoAluno = cadastroAvaliacao.PegarDadosDaAvaliacaoAlunoDeUmAlunoEmUmaAvaliacao(umAluno.GetId(), selecionado);
        yield return(umaAvaliacaoAluno);

        //carrega todos os temas de uma avaliacao
        temasDaAvaliacao = cadastroAvaliacao.ListarTemasDeUmaAvaliacao(selecionado);

        yield return(temasDaAvaliacao);

        //carregar todos os resultados das perguntas de todas as avaliacoes do aluno
        List <PerguntaDaAvaliacaoDoAluno> perguntaDaAvaliacao = new List <PerguntaDaAvaliacaoDoAluno>();

        perguntaDaAvaliacao = cadastroAvaliacao.ListarPerguntasDeUmaAvaliacao(umaAvaliacaoAluno.getId());

        yield return(perguntaDaAvaliacao);

        perguntasDosTemasAvaliacao.Clear();
        //carregar todas as perguntas de todos os temas da avaliacao
        foreach (Tema tema in temasDaAvaliacao)
        {
            perguntasDosTemasAvaliacao.Add(cadastroPergunta.ListarTodosPorTema(tema.GetId()));

            //yield return perguntasDosTemasAvaliacao;
        }

        //contagem de resultados
        List <List <int> > resultados = new List <List <int> >();

        for (int t = 0; t < temasDaAvaliacao.Count; t++)
        {
            List <int> colunas = new List <int>();
            colunas.Add(0);
            colunas.Add(0);
            resultados.Add(colunas);

            List <Pergunta> perguntasPorTema = perguntasDosTemasAvaliacao[t];

            //varrendo todas as perguntas de um aluno
            for (int i = 0; i < perguntaDaAvaliacao.Count; i++)
            {
                //varrendo as perguntas de um tema
                for (int j = 0; j < perguntasPorTema.Count; j++)
                {
                    if (perguntaDaAvaliacao[i].getPerguntaId() == perguntasPorTema[j].GetId())
                    {
                        resultados[t][0]++;
                        if (perguntaDaAvaliacao[i].getCorreta())
                        {
                            resultados[t][1]++;
                        }
                    }
                }
            }
        }

        string rel = "";
        string relatorioCabecalho = "Descrição: {0}\n\nData de início: {1}       Data de término: {2}\n\nNome: " +
                                    "{3}\nMatríclua: {4}\n\n";

        relatorioCabecalho = string.Format(relatorioCabecalho, umaAvaliacao.GetDescricao(), FormatarData.FormatToString(umaAvaliacao.GetDataInicio()),
                                           FormatarData.FormatToString(umaAvaliacao.GetDataFim()), umAluno.GetNomeCompleto(), umAluno.GetMatricula());

        string relatorioPorTema = "";

        for (int i = 0; i < temasDaAvaliacao.Count; i++)
        {
            string s   = "Tema {0}: {1}\nTotal de perguntas: {2}\nTotal de acertos: {3}\nDesempenho: {4}%\n\n";
            float  div = 100 * resultados[i][1] / resultados[i][0];
            s = string.Format(s, i + 1, temasDaAvaliacao[i].GetNome(), resultados[i][0], resultados[i][1], (int)div);
            relatorioPorTema += s;
        }

        string relatorioRodape = "Desempenho Geral: {0}%\n\n";

        int totalDeAcertos = 0, totalDePerguntas = 0;

        for (int i = 0; i < resultados.Count; i++)
        {
            totalDePerguntas += resultados[i][0];
            totalDeAcertos   += resultados[i][1];
        }

        relatorioRodape = string.Format(relatorioRodape, (int)(totalDeAcertos * 100 / totalDePerguntas));

        string relatorioComPerguntas = "";

        for (int i = 0; i < perguntaDaAvaliacao.Count; i++)
        {
            for (int j = 0; j < perguntasDosTemasAvaliacao.Count; j++)
            {
                for (int l = 0; l < perguntasDosTemasAvaliacao[j].Count; l++)
                {
                    if (perguntasDosTemasAvaliacao[j][l].GetId() == perguntaDaAvaliacao[i].getPerguntaId())
                    {
                        string s         = "Pergunta: {0}\nResultado: {1}\n";
                        string resultado = (perguntaDaAvaliacao[i].getCorreta()) ? "correta" : "errada";
                        s = string.Format(s, perguntasDosTemasAvaliacao[j][l].GetDescricao(), resultado);

                        relatorioComPerguntas += s;
                    }
                }
            }
        }

        rel += relatorioCabecalho;
        rel += relatorioPorTema;
        rel += relatorioRodape;
        rel += relatorioComPerguntas;

        relatorio.text = rel;
    }
示例#5
0
 public int SetAvaliacaoAluno(AvaliacaoAluno avaliacao)
 {
     return(new AvaliacaoAlunoEntity().SetAvaliacao(avaliacao));
 }
    public AvaliacaoAluno PegarDadosDaAvaliacaoAlunoDeUmAlunoEmUmaAvaliacao(int alunoId, int avaliacaoId)
    {
        AvaliacaoAluno umaAvaliacaoDeAluno = new AvaliacaoAluno();

        //Conexão
        MySqlConnection db = Connection.getConnection();

        try
        {
            MySqlCommand mySQLcmd = db.CreateCommand();

            //setando a procedure do banco
            mySQLcmd.CommandType = CommandType.StoredProcedure;
            mySQLcmd.CommandText = "Carregar_AvaliacaoDoAluno_Por_AvaliacaoeAluno";

            mySQLcmd.Parameters.AddWithValue("LOC_ALUNO_ID", alunoId);
            mySQLcmd.Parameters.AddWithValue("LOC_AVALIACAO_ID", avaliacaoId);

            //execução sem retorno
            MySqlDataReader rsAvaliacao = mySQLcmd.ExecuteReader();

            //se há linhas
            if (rsAvaliacao.HasRows)
            {
                //enquanto lê cada linha
                while (rsAvaliacao.Read())
                {
                    //criando um aluno para cada linha
                    umaAvaliacaoDeAluno.setId(rsAvaliacao.GetInt32("id"));
                    umaAvaliacaoDeAluno.SetDataRealizacao(rsAvaliacao.GetInt32("data_realizacao"));
                    //umaAvaliacaoDeAluno.SetTema1TotalDePerguntas(rsAvaliacao.GetInt32("tema1_totalperguntas"));
                    //umaAvaliacaoDeAluno.SetTema1TotalDeAcertos(rsAvaliacao.GetInt32("tema1_totalacertos"));
                    //umaAvaliacaoDeAluno.SetTema2TotalDePerguntas(rsAvaliacao.GetInt32("tema2_totalperguntas"));
                    //umaAvaliacaoDeAluno.SetTema2TotalDeAcertos(rsAvaliacao.GetInt32("tema2_totalacertos"));
                    //umaAvaliacaoDeAluno.SetTema3TotalDePerguntas(rsAvaliacao.GetInt32("tema3_totalperguntas"));
                    //umaAvaliacaoDeAluno.SetTema3TotalDeAcertos(rsAvaliacao.GetInt32("tema3_totalacertos"));
                    //umaAvaliacaoDeAluno.SetTema4TotalDePerguntas(rsAvaliacao.GetInt32("tema4_totalperguntas"));
                    //umaAvaliacaoDeAluno.SetTema4TotalDeAcertos(rsAvaliacao.GetInt32("tema4_totalacertos"));
                }
                db.Close();
            }
            else
            {
                //sem resultados
            }
        }
        catch (MySqlException ex)
        {
            throw new ExcecaoSAG("Erro ao listarEEEE as avaliacoes por aluno. Código " + ex.ToString());
        }
        catch (ExcecaoSAG ex)
        {
            throw ex;
        }
        finally
        {
            db.Close();
        }
        //retorna a lista de alunos
        return(umaAvaliacaoDeAluno);
    }