Example #1
0
        private void Incluir()
        {
            FormQuestao frmQuestao = new FormQuestao();

            Questao questao = null;

            frmQuestao.SetOperacao(TipoOperacaoCadastro.Incluir, 0, GetIdItemCombo(cboDisciplina));

            frmQuestao.SetEventRetorno(new EventHandler <Questao>(delegate(Object o, Questao a)
            {
                questao = a;
            }));

            frmQuestao.ShowDialog(this);

            if (questao != null)
            {
                lstQuestoes.BeginUpdate();
                ListViewItem[] items = new ListViewItem[1];

                IncluirNovoItem(items, 0, questao);

                lstQuestoes.Items.AddRange(items);

                lstQuestoes.EndUpdate();
            }
        }
Example #2
0
        private void AtualizaItemSelecionado(Questao Questao)
        {
            ListViewItem item = lstQuestoes.SelectedItems[0];

            item.SubItems.Clear();

            item.Text      = Questao.Id.ToString();
            item.BackColor = Questao.Ativo ? Color.White : Color.LightSalmon;
            item.SubItems.Add(Questao.Enunciado);
        }
Example #3
0
        private void IncluirNovoItem(ListViewItem[] items, int index, Questao Questao)
        {
            ListViewItem item = new ListViewItem(Questao.Id.ToString());

            item.BackColor = Questao.Ativo ? Color.White : Color.LightSalmon;
            item.Tag       = Questao.Id;

            item.SubItems.Add(Questao.Enunciado);

            items[index] = item;
        }
Example #4
0
        private void Excluir()
        {
            FormQuestao frmQuestao = new FormQuestao();

            Questao questao = null;

            frmQuestao.SetOperacao(TipoOperacaoCadastro.Excluir, GetIdItemSelecionado(lstQuestoes), 0);

            frmQuestao.SetEventRetorno(new EventHandler <Questao>(delegate(Object o, Questao a)
            {
                questao = a;
            }));

            frmQuestao.ShowDialog(this);

            if (questao != null)
            {
                RemoveItemSelecionado(lstQuestoes);
            }
        }
Example #5
0
        private bool AtribuirQuestao(bool incluir)
        {
            bool ret = false;

            try
            {
                if (incluir)
                {
                    questao = new Questao();
                }

                questao.Enunciado               = rchEnunciado.Text.Trim();
                questao.Ativo                   = chkAtivo.Checked;
                questao.TipoQuestao             = (TipoDeQuestao)GetIdItemCombo(cboTipoQuestao);
                questao.IdDisciplina            = GetIdItemCombo(cboDisciplina);
                questao.QtdLinhasEnunciado      = (int)numQtdLinhasEnunciado.Value;
                questao.QtdLinhasResposta       = (int)numQtdLinhasResposta.Value;
                questao.Complexidade            = (int)numComplexidade.Value;
                questao.TempoResposta           = (int)numTempoResposta.Value;
                questao.TempoMinimoReutilizacao = (int)numTempoMinReutilizacao.Value;
                questao.SequenciaImpressao      = txtSequenciaImpressao.Text;

                if (picImagemQuestao.Image == null)
                {
                    questao.Imagem = null;
                }
                else
                {
                    questao.Imagem = Converter.ImageToByteArray(picImagemQuestao.Image);
                }

                ret = true;
            }
            catch (Exception ex)
            {
                Mensagem.ShowErro("Erro ao atribuir questão!", ex);
            }

            return(ret);
        }
Example #6
0
        private int ExcelGravaDados(Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet, int row)
        {
            bool ret = true;

            Avaliacao  avaliacao  = null;
            Disciplina disciplina = null;
            List <AvaliacaoQuestao> avaliacaoQuestoes = null;

            List <int> listQuestoes;

            StringBuilder sb;

            object[] dados = null;

            int[] qtdTotTipoQuestao;

            int[] qtdTotComplex;

            int quantidadeQuestoes;
            int tempoTotalPrevisto;
            int qtdLinhasUtilizadas;

            foreach (ListViewItem item in lstAvaliacoes.Items)
            {
                qtdTotTipoQuestao = new int[] { 0, 0, 0, 0 };

                qtdTotComplex = new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };

                quantidadeQuestoes  = 0;
                tempoTotalPrevisto  = 0;
                qtdLinhasUtilizadas = 0;

                listQuestoes = new List <int>();
                sb           = new StringBuilder();

                avaliacao = DBControl.Table <Avaliacao> .Ler((int)item.Tag);

                ret = avaliacao != null && avaliacao.Id != 0;

                if (ret)
                {
                    disciplina = DBControl.Table <Disciplina> .Ler(avaliacao.IdDisciplina);

                    ret = disciplina != null && disciplina.Id != 0;
                }

                if (ret)
                {
                    avaliacaoQuestoes = DBControl.Table <AvaliacaoQuestao> .Pesquisar(x => x.IdAvaliacao == avaliacao.Id);

                    if (avaliacaoQuestoes != null && avaliacaoQuestoes.Count > 0)
                    {
                        Questao questao = null;

                        foreach (AvaliacaoQuestao aq in avaliacaoQuestoes)
                        {
                            listQuestoes.Add(aq.IdQuestao);

                            questao = DBControl.Table <Questao> .Ler(aq.IdQuestao);

                            List <QuestaoItemEscolha> listaQE = DBControl.Table <QuestaoItemEscolha> .Pesquisar(x => x.IdQuestao == aq.IdQuestao);

                            List <QuestaoItemAssociacao> listaQA = DBControl.Table <QuestaoItemAssociacao> .Pesquisar(x => x.IdQuestao == aq.IdQuestao);

                            qtdTotTipoQuestao[(int)questao.TipoQuestao - 1]++;
                            qtdTotComplex[questao.Complexidade - 1]++;
                            quantidadeQuestoes++;
                            tempoTotalPrevisto += questao.TempoResposta;

                            qtdLinhasUtilizadas += questao.QtdLinhasEnunciado;

                            if (questao.TipoQuestao == TipoDeQuestao.Discursiva)
                            {
                                qtdLinhasUtilizadas += questao.QtdLinhasResposta;
                            }
                            else
                            {
                                foreach (QuestaoItemEscolha qe in listaQE)
                                {
                                    qtdLinhasUtilizadas += qe.QtdLinhasOcupadas;
                                }

                                foreach (QuestaoItemAssociacao qa in listaQA)
                                {
                                    qtdLinhasUtilizadas += qa.QtdLinhasOcupadas;
                                }
                            }
                        }
                    }

                    listQuestoes.Sort();

                    foreach (int value in listQuestoes)
                    {
                        sb.Append("|").Append(value.ToString());
                    }

                    dados = new object[] { avaliacao.Id.ToString(), disciplina.Nome, avaliacao.DtGeracao,
                                                                    quantidadeQuestoes, tempoTotalPrevisto,
                                                                    qtdTotTipoQuestao[(int)TipoDeQuestao.Discursiva - 1],
                                                                    qtdTotTipoQuestao[(int)TipoDeQuestao.EscolhaSimples - 1],
                                                                    qtdTotTipoQuestao[(int)TipoDeQuestao.MultiplaEscolha - 1],
                                                                    qtdTotTipoQuestao[(int)TipoDeQuestao.ListaDeAssociacao - 1],
                                                                    qtdTotComplex[0], qtdTotComplex[1], qtdTotComplex[2], qtdTotComplex[3],
                                                                    qtdTotComplex[4], qtdTotComplex[5], qtdTotComplex[6], qtdTotComplex[7],
                                                                    qtdTotComplex[8], qtdTotComplex[9], sb.ToString().Substring(1).Replace("|", ", ") };
                }

                if (ret)
                {
                    xlWorkSheet.Range[xlWorkSheet.Cells[row, 1], xlWorkSheet.Cells[row, dados.Length]].Value = dados;
                    row++;
                }
            }

            return(row);
        }
Example #7
0
        private bool CarregarDados()
        {
            bool ret = true;

            Cursor.Current = Cursors.WaitCursor;

            inLoad = true;

            avaliacao = DBControl.Table <Avaliacao> .Ler(id);

            if (avaliacao != null)
            {
                txtID.Text          = avaliacao.Id.ToString();
                txtCodigo.Text      = avaliacao.Codigo.ToString();
                txtDescricao.Text   = avaliacao.Descricao.ToString();
                txtDataGeracao.Text = avaliacao.DtGeracao.ToShortDateString();
            }

            if (avaliacao == null)
            {
                Mensagem.ShowAlerta(this, "Não foi possível ler a Avaliacao com ID " + id.ToString() + "!");

                ret = false;
            }

            int[] qtdTotTipoQuestao = { 0, 0, 0, 0 };

            int[] qtdTotComplex = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };

            int quantidadeQuestoes  = 0;
            int tempoTotalPrevisto  = 0;
            int qtdLinhasUtilizadas = 0;

            if (ret)
            {
                avaliacaoQuestoes = DBControl.Table <AvaliacaoQuestao> .Pesquisar(x => x.IdAvaliacao == avaliacao.Id);

                if (avaliacaoQuestoes != null && avaliacaoQuestoes.Count > 0)
                {
                    DataGridViewRow dgvr    = null;
                    Questao         questao = null;

                    foreach (AvaliacaoQuestao aq in avaliacaoQuestoes)
                    {
                        questao = DBControl.Table <Questao> .Ler(aq.IdQuestao);

                        List <QuestaoItemEscolha> listaQE = DBControl.Table <QuestaoItemEscolha> .Pesquisar(x => x.IdQuestao == aq.IdQuestao);

                        List <QuestaoItemAssociacao> listaQA = DBControl.Table <QuestaoItemAssociacao> .Pesquisar(x => x.IdQuestao == aq.IdQuestao);

                        dgvr = new DataGridViewRow();

                        dgvListaQuestoes.Rows.Add(aq.IdQuestao, questao.Enunciado, aq.DtGeracao.ToShortDateString());

                        qtdTotTipoQuestao[(int)questao.TipoQuestao - 1]++;
                        qtdTotComplex[questao.Complexidade - 1]++;
                        quantidadeQuestoes++;
                        tempoTotalPrevisto += questao.TempoResposta;

                        qtdLinhasUtilizadas += questao.QtdLinhasEnunciado;

                        if (questao.TipoQuestao == TipoDeQuestao.Discursiva)
                        {
                            qtdLinhasUtilizadas += questao.QtdLinhasResposta;
                        }
                        else
                        {
                            foreach (QuestaoItemEscolha qe in listaQE)
                            {
                                qtdLinhasUtilizadas += qe.QtdLinhasOcupadas;
                            }

                            foreach (QuestaoItemAssociacao qa in listaQA)
                            {
                                qtdLinhasUtilizadas += qa.QtdLinhasOcupadas;
                            }
                        }
                    }
                }
            }

            if (ret)
            {
                numQtdTotQuestaoDiscursiva.Value      = qtdTotTipoQuestao[(int)TipoDeQuestao.Discursiva - 1];
                numQtdTotQuestaoEscolhaSimples.Value  = qtdTotTipoQuestao[(int)TipoDeQuestao.EscolhaSimples - 1];
                numQtdTotQuestaoMultiplaEscolha.Value = qtdTotTipoQuestao[(int)TipoDeQuestao.MultiplaEscolha - 1];
                numQtdTotQuestaoListaAssociacao.Value = qtdTotTipoQuestao[(int)TipoDeQuestao.ListaDeAssociacao - 1];

                numQtdTotComplex1.Value  = qtdTotComplex[0];
                numQtdTotComplex2.Value  = qtdTotComplex[1];
                numQtdTotComplex3.Value  = qtdTotComplex[2];
                numQtdTotComplex4.Value  = qtdTotComplex[3];
                numQtdTotComplex5.Value  = qtdTotComplex[4];
                numQtdTotComplex6.Value  = qtdTotComplex[5];
                numQtdTotComplex7.Value  = qtdTotComplex[6];
                numQtdTotComplex8.Value  = qtdTotComplex[7];
                numQtdTotComplex9.Value  = qtdTotComplex[8];
                numQtdTotComplex10.Value = qtdTotComplex[9];

                numQuantidadeQuestoes.Value  = quantidadeQuestoes;
                numTempoTotalPrevisto.Value  = tempoTotalPrevisto;
                numQtdLinhasUtilizadas.Value = qtdLinhasUtilizadas;
            }


            if (ret && !CarregarCombos())
            {
                Mensagem.ShowAlerta(this, "Não foi possível carregar Disciplinas!");

                ret = false;
            }

            inLoad = false;

            Cursor.Current = Cursors.Default;

            return(ret);
        }
Example #8
0
        private bool CarregarDados()
        {
            bool ret = true;

            Cursor.Current = Cursors.WaitCursor;

            inLoad = true;

            chkAtivo.Checked = true;
            cboTipoQuestao.Focus();

            if (tipoOperacao != TipoOperacaoCadastro.Incluir)
            {
                questao = DBControl.Table <Questao> .Ler(id);

                if (questao != null)
                {
                    txtID.Text        = questao.Id.ToString();
                    rchEnunciado.Text = questao.Enunciado;
                    chkAtivo.Checked  = questao.Ativo;
                    SelectComboBoxByValue(cboTipoQuestao, (int)questao.TipoQuestao);
                    SelectComboBoxByValue(cboDisciplina, questao.IdDisciplina);
                    numQtdLinhasEnunciado.Value   = questao.QtdLinhasEnunciado;
                    numQtdLinhasResposta.Value    = questao.QtdLinhasResposta;
                    numComplexidade.Value         = questao.Complexidade;
                    numTempoResposta.Value        = questao.TempoResposta;
                    numTempoMinReutilizacao.Value = questao.TempoMinimoReutilizacao;
                    txtSequenciaImpressao.Text    = questao.SequenciaImpressao;

                    if (questao.Imagem == null)
                    {
                        picImagemQuestao.Image = null;
                    }
                    else
                    {
                        picImagemQuestao.Image = Converter.ByteArrayToImage(questao.Imagem);
                    }
                }

                if (questao == null)
                {
                    Mensagem.ShowAlerta(this, "Não foi possível ler a Questao com ID " + id.ToString() + "!");

                    ret = false;
                }

                if (questao != null)
                {
                    questaoItensEscolha = DBControl.Table <QuestaoItemEscolha> .Pesquisar(x => x.IdQuestao == questao.Id);

                    questaoItensAssociacao = DBControl.Table <QuestaoItemAssociacao> .Pesquisar(x => x.IdQuestao == questao.Id);

                    if (questaoItensEscolha != null && questaoItensEscolha.Count > 0)
                    {
                        DataGridViewRow dgvr = null;

                        foreach (QuestaoItemEscolha qe in questaoItensEscolha)
                        {
                            dgvr = new DataGridViewRow();

                            dgvListaSelecao.Rows.Add(qe.Id, qe.Descricao, qe.QtdLinhasOcupadas.ToString());
                        }
                    }
                    if (questaoItensAssociacao != null && questaoItensAssociacao.Count > 0)
                    {
                        DataGridViewRow dgvr  = null;
                        Image           image = null;

                        foreach (QuestaoItemAssociacao qa in questaoItensAssociacao)
                        {
                            dgvr = new DataGridViewRow();

                            image = Converter.ByteArrayToImage(qa.Imagem);

                            dgvListaAssociacao.Rows.Add(qa.Id, qa.Codigo, qa.Descricao, image, qa.QtdLinhasOcupadas.ToString());
                        }
                    }
                }
            }

            if (ret && !CarregarCombos())
            {
                Mensagem.ShowAlerta(this, "Não foi possível carregar Disciplinas e Cursos!");

                ret = false;
            }

            inLoad = false;

            Cursor.Current = Cursors.Default;

            return(ret);
        }
Example #9
0
        private bool IncluirNovosDados(int idDisciplina, int qtdQuestoes)
        {
            bool ret;

            SetPrbMaximo(qtdQuestoes);
            SetPrbValue(0);

            List <Disciplina> listD = null;

            if (idDisciplina == 0)
            {
                listD = DBControl.Table <Disciplina> .Pesquisar(x => x.Ativo);
            }
            else
            {
                listD = DBControl.Table <Disciplina> .Pesquisar(x => x.Id == idDisciplina);
            }

            ret = (listD != null);

            if (ret)
            {
                Random random = new Random();

                Questao               q;
                QuestaoItemEscolha    qi;
                QuestaoItemAssociacao qa;


                int idQuestao;

                for (int i = 1; i <= qtdQuestoes; i++)
                {
                    q = new Questao();

                    q.Ativo                   = true;
                    q.Complexidade            = random.Next(1, 11);
                    q.TipoQuestao             = (TipoDeQuestao)random.Next(1, 5);
                    q.TempoMinimoReutilizacao = 365;
                    q.QtdLinhasEnunciado      = 1;
                    q.QtdLinhasResposta       = q.TipoQuestao == TipoDeQuestao.Discursiva ? 1 : 0;

                    switch (q.TipoQuestao)
                    {
                    case TipoDeQuestao.Discursiva:
                        q.TempoResposta      = q.Complexidade * 30 + 30;
                        q.SequenciaImpressao = "ER";
                        break;

                    case TipoDeQuestao.EscolhaSimples:
                        q.TempoResposta      = q.Complexidade * 5 + 30;
                        q.SequenciaImpressao = "EL";
                        break;

                    case TipoDeQuestao.MultiplaEscolha:
                        q.TempoResposta      = q.Complexidade * 10 + 30;
                        q.SequenciaImpressao = "EL";
                        break;

                    case TipoDeQuestao.ListaDeAssociacao:
                        q.TempoResposta      = q.Complexidade * 15 + 30;
                        q.SequenciaImpressao = "ELA";
                        break;
                    }

                    q.IdDisciplina = random.Next(1, listD.Count + 1);
                    q.Enunciado    = "Questão " + q.TipoQuestao.ToString() + " número " + i.ToString() + " (Complexidade " + q.Complexidade.ToString() + ", Tempo " + q.TempoResposta.ToString() + ")";

                    idQuestao = DBControl.Table <Questao> .Incluir(q);

                    ret = idQuestao != 0;

                    if (!ret)
                    {
                        break;
                    }

                    if (q.TipoQuestao != TipoDeQuestao.Discursiva)
                    {
                        int id;
                        int ni = random.Next(4, 11);

                        for (int l = 1; l <= ni; l++)
                        {
                            qi = new QuestaoItemEscolha();

                            qi.IdQuestao         = idQuestao;
                            qi.Descricao         = (q.TipoQuestao == TipoDeQuestao.MultiplaEscolha ? "Múltipla " : "") + "Escolha número " + l.ToString();
                            qi.QtdLinhasOcupadas = 1;

                            id = DBControl.Table <QuestaoItemEscolha> .Incluir(qi);

                            ret = id != 0;

                            if (!ret)
                            {
                                break;
                            }

                            if (q.TipoQuestao == TipoDeQuestao.ListaDeAssociacao)
                            {
                                qa = new QuestaoItemAssociacao();

                                qa.IdQuestao         = idQuestao;
                                qa.Codigo            = Encoding.ASCII.GetString(new byte[] { (byte)(l + 64) });
                                qa.Descricao         = "Item de associação número " + l.ToString();
                                qa.QtdLinhasOcupadas = 1;

                                id = DBControl.Table <QuestaoItemAssociacao> .Incluir(qa);

                                ret = id != 0;

                                if (!ret)
                                {
                                    break;
                                }
                            }
                        }
                    }

                    if (!ret)
                    {
                        break;
                    }

                    IncPrbValue(1);
                }
            }

            return(ret);
        }