private QuestaoItemAssociacao DataGridToItemAssociacao(DataGridViewRow dgvr, int idQuestao) { QuestaoItemAssociacao qa = new QuestaoItemAssociacao(); qa.Id = dgvr.Cells[0].Value == null ? 0 : (int)dgvr.Cells[0].Value; qa.IdQuestao = idQuestao; qa.Codigo = dgvr.Cells[1].Value == null ? "" : (string)dgvr.Cells[1].Value; qa.Descricao = dgvr.Cells[2].Value == null ? "" : (string)dgvr.Cells[2].Value; qa.Imagem = Converter.ImageToByteArray((Image)dgvr.Cells[3].Value); qa.QtdLinhasOcupadas = dgvr.Cells[4].Value == null ? 0 : int.Parse((string)dgvr.Cells[4].Value); return(qa); }
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); }