コード例 #1
0
        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);
        }
コード例 #2
0
        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"));
        }
コード例 #3
0
        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);
        }