public string QuantidadeDeQuestoesPorAssunto(string assuntosSelecionados) { string[] ListaQuest = assuntosSelecionados.Split(','); var dict = new Dictionary <int, int>(); List <Questao> questoesRaw = new List <Questao>(); foreach (string assunto in ListaQuest) { questoesRaw.AddRange(QuestaoDAO.BuscarPorAssunto(assunto)); } //1 = Simples Escolha, 2 = Multipla Escolha, 3 = Verdadeiro ou Falso, 4 = Discursiva. dict.Add(1, questoesRaw.FindAll(x => x.TipoQuestao == 1).Count()); dict.Add(2, questoesRaw.FindAll(x => x.TipoQuestao == 2).Count()); dict.Add(3, questoesRaw.FindAll(x => x.TipoQuestao == 3).Count()); dict.Add(4, questoesRaw.FindAll(x => x.TipoQuestao == 4).Count()); var output = Newtonsoft.Json.JsonConvert.SerializeObject(dict); return(output); }
public ActionResult ConsultarQuestoesBtn(string Disciplina, string Assunto, int?Desativado) { List <Questao> questoes = new List <Questao>(); if (Assunto.Equals("0") && Disciplina.Equals("0")) { questoes = QuestaoDAO.BuscarTodasQuestoes(Desativado); TempData["questoes"] = questoes; } else if (Assunto.Equals("0") && !Disciplina.Equals("0")) { questoes = QuestaoDAO.BuscarPorDisciplina(Disciplina, Desativado); TempData["questoes"] = questoes; } else { questoes = QuestaoDAO.BuscarPorAssunto(Assunto); TempData["questoes"] = questoes; } return(RedirectToAction("ConsultarQuestoes", "ConsultarQuestoes")); }
private List <Questao> gerarQuestoes() { List <Questao> questoesFinal = new List <Questao>(); List <Questao> verdadeirFalso = new List <Questao>(); List <Questao> dissertativa = new List <Questao>(); List <Questao> multiplaEscolha = new List <Questao>(); List <Questao> simplesEscolha = new List <Questao>(); List <Questao> questoesRaw = new List <Questao>(); List <int> QtVerdadeirFalso = new List <int>(); List <int> QtDissertativa = new List <int>(); List <int> QtMultiplaEscolha = new List <int>(); List <int> QtSimplesEscolha = new List <int>(); Random rnd = new Random(); int aleatorio = 0; int contador = 0; //realiza a busca por assuntos na base de dados e coloca em uma listagem foreach (string assunto in provaFixa.Assuntos) { questoesRaw.AddRange(QuestaoDAO.BuscarPorAssunto(assunto)); } //separa cada questão na respectiva lista para organizãção foreach (Questao item in questoesRaw) { if (item.TipoQuestao == 1) { simplesEscolha.Add(item); } if (item.TipoQuestao == 2) { multiplaEscolha.Add(item); } if (item.TipoQuestao == 3) { verdadeirFalso.Add(item); } if (item.TipoQuestao == 4) { dissertativa.Add(item); } } //----------------------------------------------// for (int i = 0; i < provaFixa.QtMultiplaEscolha; i++) { contador = 0; while (provaFixa.QtMultiplaEscolha > QtMultiplaEscolha.Count()) { aleatorio = 0; aleatorio = rnd.Next(0, multiplaEscolha.Count); if (!QtMultiplaEscolha.Contains(aleatorio)) { QtMultiplaEscolha.Add(aleatorio); } contador++; } } //----------------------------------------------// for (int i = 0; i < provaFixa.QtVerdadeirFalso; i++) { while (provaFixa.QtVerdadeirFalso > QtVerdadeirFalso.Count()) { aleatorio = 0; aleatorio = rnd.Next(0, verdadeirFalso.Count); if (!QtVerdadeirFalso.Contains(aleatorio)) { QtVerdadeirFalso.Add(aleatorio); } } } //----------------------------------------------// for (int i = 0; i < provaFixa.QtDissertativa; i++) { while (provaFixa.QtDissertativa > QtDissertativa.Count()) { aleatorio = 0; aleatorio = rnd.Next(0, dissertativa.Count); if (QtDissertativa == null || !QtDissertativa.Exists(item => item == aleatorio)) { QtDissertativa.Add(aleatorio); } } } //gera as sequencias aleatorias de acordo com cada tipo de questão for (int i = 0; i < provaFixa.QtSimplesEscolha; i++) { while (provaFixa.QtSimplesEscolha > QtSimplesEscolha.Count()) { aleatorio = 0; aleatorio = rnd.Next(0, simplesEscolha.Count); if (!QtSimplesEscolha.Contains(aleatorio)) { QtSimplesEscolha.Add(aleatorio); } } } //adiciona as questões na lista final foreach (int item in QtSimplesEscolha) { questoesFinal.Add(simplesEscolha[item]); } //adiciona as questões na lista final foreach (int item in QtMultiplaEscolha) { questoesFinal.Add(multiplaEscolha[item]); } //adiciona as questões na lista final foreach (int item in QtVerdadeirFalso) { questoesFinal.Add(verdadeirFalso[item]); } //adiciona as questões na lista final foreach (int item in QtDissertativa) { questoesFinal.Add(dissertativa[item]); } //----------------------------------------------// return(questoesFinal); }