コード例 #1
0
        // GET: Practice/Practice
        public ActionResult Index(int? idSimulado, QuestaoCortesia questaoCortesia)
        {
            if (questaoCortesia.NumQuestoesTotal > 0)
            {
                return View(questaoCortesia);
            }

            QuestaoCortesia questao;

            if (idSimulado == null)
            {
                // cria um novo simulado
                var simulado = cortesia.GetSimulado(cortesia.CriarSimulado());
                var alternativa = simulado.QuestoesSimuladas.ToList().OrderBy(x => x.Id).First();
                questao = cortesia.GetQuestao(alternativa.IdCortesia, alternativa.IdQuestao);
            }
            else
            {
                questao = cortesia.GetQuestao((int)idSimulado);
            }

            // retorna view com a primeira questao
            return View(questao);
        }
コード例 #2
0
        /// <summary>
        /// Retorna uma questao do simulado (CorSimulado)
        /// </summary>
        /// <param name="idCortesia"></param>
        /// <param name="idQuestao"></param>
        /// <returns></returns>
        public QuestaoCortesia GetQuestao(int idCortesia, int idQuestao)
        {
            // simulados desta cortesia
            List<CorSimulado> simulados;
            simulados = serviceSimulado.Listar().Where(x => x.IdCortesia == idCortesia).OrderBy(x => x.Id).ToList();
            if (simulados.Count() == 0)
            {
                // gera um novo simulado
                simulados = simuladoCor.GetSimulados(idCortesia).OrderBy(x => x.Id).ToList();
            }

            var atual = simulados.Where(x => x.IdQuestao == idQuestao).FirstOrDefault();

            var questao = new QuestaoCortesia();
            questao.QuestaoUsuario = atual;
            questao.NumQuestoesTotal = simulados.Count();
            questao.NumQuestaoAtual = simulados.IndexOf(atual) + 1;
            questao.PrimeiraQuestao = (questao.NumQuestaoAtual == 1);
            questao.UltimaQuestao = (questao.NumQuestaoAtual == questao.NumQuestoesTotal);
            questao.QuestoesNaoRespondidas = simulados.Where(x => x.ResponderDepois == true).OrderBy(x => x.Id).AsEnumerable();
            questao.Concluir = serviceCortesia.Find(idCortesia).Concluir;

            return questao;
        }