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(); } }
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); }
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; }
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); } }
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); }
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); }
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); }
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); }
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); }