Пример #1
0
        private QuestaoItemEscolha DataGridToItemEscolha(DataGridViewRow dgvr, int idQuestao)
        {
            QuestaoItemEscolha qe = new QuestaoItemEscolha();

            qe.Id                = dgvr.Cells[0].Value == null ? 0 : (int)dgvr.Cells[0].Value;
            qe.IdQuestao         = idQuestao;
            qe.Descricao         = dgvr.Cells[1].Value == null ? "" : (string)dgvr.Cells[1].Value;
            qe.QtdLinhasOcupadas = dgvr.Cells[2].Value == null ? 0 : int.Parse((string)dgvr.Cells[2].Value);

            return(qe);
        }
Пример #2
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);
        }