public async Task <ActionResult> Simulacao(int?page, long idCourse) { List <Area> areas = dbContext.Area.Where(a => a.idCourse == idCourse).ToList(); var idsArea = new long[areas.Count()]; int i = 0; foreach (var area in areas) { idsArea.SetValue(area.idArea, i); i++; } var random = new Random(); var questoesArea = (from q in dbContext.Questao where idsArea.Contains(q.idArea) orderby random.Next() select q).Take(_configuracoes.NumeroQuestoesExame); if (questoesArea.Count() != 0) { //Grava temporariamente as 80 questões do simulado SimuladoViewModel.listaQuestoes = questoesArea; SimuladoViewModel svm = await selecionaPerguntas(page); ViewData["segundos"] = 0; return(View("Index", svm)); } return(RedirectToRoute(new { Controller = "Enrollment", Action = "Index" })); }
public async Task <ActionResult> SimulacaoStep(int?page, int segundos) { //Seleciona a nova pergunta que irá mostrar para o usuário SimuladoViewModel svm = await selecionaPerguntas(page); ViewData["segundos"] = segundos; return(View("Index", svm)); }
private async Task <SimuladoViewModel> selecionaPerguntas(int?page) { SimuladoViewModel svm = new SimuladoViewModel(); svm.Questoes = await PaginatedList <Questao> .CreateAsync(SimuladoViewModel.listaQuestoes, page ?? 1, 1); svm.RespostasQuestao = dbContext.Resposta.Where(r => r.idQuestao == svm.Questoes.First().idQuestao).ToList(); foreach (var resposta in svm.RespostasQuestao) { if (resposta.Correta == true) { ViewData["idRespostaCorreta"] = resposta.idResposta; } } return(svm); }