public AulaVideoViewModel(Aula aula, PerguntaDAO pergDAO, int superInt, Personalidade pe) { this.aula = aula; this.pergDAO = new PerguntaDAO(); this.SuperInteratividade = superInt; this.avatar = pe; PerguntaIndex = 0; QuestaoAColocar = ""; int idAula = aula.Id; previousTimeStamp = 0; QuestoesPorOrdemTempo = new List<string>(); RespostasPorOrdemTempo = new List<string>(); FontesExtraPorOrdemTempo = new List<string>(); TimeStampsIndexados = new List<int>(); // Calcular questões desta aula de vídeo foreach (var pergunta in pergDAO.Pergunta) { if (pergunta.Aula == idAula) { QuestoesPorOrdemTempo.Add(pergunta.Pergunta1); RespostasPorOrdemTempo.Add(pergunta.Resposta); FontesExtraPorOrdemTempo.Add(pergunta.FonteExtra); TimeStampsIndexados.Add((int)pergunta.TimeStamp); } } }
public JsonResult PreencherEspacosFim(RespExercicioViewModel values) { int alineasCorretas = 0; int percentagem = 0; // Contar nº de respostas certas for (int i = 0; i < values.Respostas.Length; i++) { if (pe.validaResposta(pe.Respostas[i], values.Respostas[i])==true) { alineasCorretas++; } } // Calcular percentagem resultante da realização do exercício percentagem = (alineasCorretas * 100) / pe.Respostas.Count(); ViewBag.Score = percentagem; var JaFezExercicio = ueDAO.UtilizadorExercicio.Where(usrex => usrex.Exercicio == values.Id && usrex.Utilizador == user.Id); if (JaFezExercicio.Count() == 0) { // O utilizador fez pela primeira vez o exercício portanto o mesmo é contabilizado em termos de progresso user.TotalExercicios++; } user.TotalAlineas += values.Respostas.Count(); if (percentagem >= 50) { user.ExerciciosPositivos++; // Incrementar número de exercício positivos } user.TotalAlineasCorretas += alineasCorretas; try { userDAO.Entry(user).State = System.Data.Entity.EntityState.Modified; try { UtilizadorExercicio ue = new UtilizadorExercicio(); ue.Utilizador = user.Id; ue.Exercicio = values.Id; ue.AlineasCorretas = alineasCorretas; ue.Data = System.DateTime.Now; ueDAO.UtilizadorExercicio.Add(ue); // Se ambas as inserções ocorrerem com sucesso guardo novo estado da base de dados userDAO.SaveChanges(); ueDAO.SaveChanges(); } catch (System.Data.SqlClient.SqlException) { } } catch (System.Data.SqlClient.SqlException) { } Personalidade pers = new Personalidade(); Personalidade.FALA_ATUAL = pers.getFalaResultadoDeExercicio(percentagem); string color = "red"; if (percentagem > 50) { color = "green"; } string res = pe.getTextoSolucao() + "<br><br>" + "Resulado: <b style=\"font-size: 24px; color: "+color+";\">" + percentagem + "%</b>"; return Json(res); }