public ActionResult CarregarRespostasDiscursivas(string codigo, string matrAluno) { if (!StringExt.IsNullOrWhiteSpace(codigo, matrAluno)) { AvalAcadReposicao aval = AvalAcadReposicao.ListarPorCodigoAvaliacao(codigo); Aluno aluno = Aluno.ListarPorMatricula(matrAluno); int codPessoaFisica = aluno.Usuario.PessoaFisica.CodPessoa; var retorno = from alunoResposta in aval.Avaliacao.PessoaResposta orderby alunoResposta.CodQuestao where alunoResposta.CodPessoaFisica == codPessoaFisica && alunoResposta.AvalTemaQuestao.QuestaoTema.Questao.CodTipoQuestao == TipoQuestao.DISCURSIVA select new { codQuestao = alunoResposta.CodQuestao, questaoEnunciado = alunoResposta.AvalTemaQuestao.QuestaoTema.Questao.Enunciado, questaoChaveResposta = alunoResposta.AvalTemaQuestao.QuestaoTema.Questao.ChaveDeResposta, alunoResposta = alunoResposta.RespDiscursiva, notaObtida = alunoResposta.RespNota.HasValue ? alunoResposta.RespNota.Value.ToValueHtml() : "", correcaoComentario = alunoResposta.ProfObservacao != null ? alunoResposta.ProfObservacao : "", flagCorrigida = alunoResposta.RespNota != null ? true : false }; return(Json(retorno)); } return(Json(null)); }
public ActionResult ContagemRegressiva(string codAvaliacao) { AvalAcadReposicao aval = AvalAcadReposicao.ListarPorCodigoAvaliacao(codAvaliacao); string tempo = aval.Avaliacao.DtAplicacao.Value.ToLeftTimeString(); int quantidadeMilissegundo = 0; bool flagLiberada = aval.Avaliacao.FlagLiberada && aval.Avaliacao.DtTermino > DateTime.Now; if (tempo != "Agora") { char tipo = tempo[(tempo.IndexOf(' ')) + 1]; switch (tipo) { case 'd': quantidadeMilissegundo = 0; break; case 'h': quantidadeMilissegundo = 1 * 60 * 60 * 1000; break; case 'm': quantidadeMilissegundo = 1 * 60 * 1000; break; case 's': quantidadeMilissegundo = 1 * 1000; break; default: break; } } return(Json(new { Tempo = tempo, Intervalo = quantidadeMilissegundo, FlagLiberada = flagLiberada })); }
public ActionResult CarregarRespostasPorQuestao(string codigo, string codQuestao) { if (!StringExt.IsNullOrWhiteSpace(codigo, codQuestao)) { AvalAcadReposicao aval = AvalAcadReposicao.ListarPorCodigoAvaliacao(codigo); int codQuestaoTemp = int.Parse(codQuestao); var retorno = from questao in aval.Avaliacao.PessoaResposta orderby questao.PessoaFisica.Nome where questao.CodQuestao == codQuestaoTemp && questao.AvalTemaQuestao.QuestaoTema.Questao.CodTipoQuestao == TipoQuestao.DISCURSIVA select new { alunoMatricula = aval.AlunosRealizaram.FirstOrDefault(a => a.Usuario.CodPessoaFisica == questao.CodPessoaFisica).Usuario.Matricula, alunoNome = questao.PessoaFisica.Nome, codQuestao = questao.CodQuestao, questaoEnunciado = questao.AvalTemaQuestao.QuestaoTema.Questao.Enunciado, questaoChaveResposta = questao.AvalTemaQuestao.QuestaoTema.Questao.ChaveDeResposta, alunoResposta = questao.RespDiscursiva, notaObtida = questao.RespNota.HasValue ? questao.RespNota.Value.ToValueHtml() : "", correcaoComentario = questao.ProfObservacao != null ? questao.ProfObservacao : "", flagCorrigida = questao.RespNota != null ? true : false }; return(Json(retorno)); } return(Json(null)); }
public ActionResult Corrigir(string codigo) { if (!String.IsNullOrWhiteSpace(codigo)) { AvalAcadReposicao aval = AvalAcadReposicao.ListarPorCodigoAvaliacao(codigo); if (aval != null && aval.Avaliacao.FlagCorrecaoPendente && aval.Professor.MatrProfessor == Sessao.UsuarioMatricula) { return(View(aval)); } } return(RedirectToAction("Index")); }
public ActionResult Acompanhar(string codigo) { if (!String.IsNullOrWhiteSpace(codigo)) { AvalAcadReposicao aval = AvalAcadReposicao.ListarPorCodigoAvaliacao(codigo); if (aval != null && aval.Professor.MatrProfessor == Sessao.UsuarioMatricula && aval.Avaliacao.FlagAgendada && aval.Avaliacao.FlagAgora) { return(View(aval)); } } return(RedirectToAction("Agendada", new { codigo = codigo })); }
// GET: historico/avaliacao/reposicao/detalhe/REPO201520001 public ActionResult Detalhe(string codigo) { if (!String.IsNullOrWhiteSpace(codigo)) { AvalAcadReposicao aval = AvalAcadReposicao.ListarPorCodigoAvaliacao(codigo); if (aval != null) { return(View(aval)); } } return(RedirectToAction("Index")); }
public ActionResult Imprimir(string codigo) { if (!String.IsNullOrWhiteSpace(codigo) && !Sistema.AvaliacaoUsuario.ContainsKey(codigo)) { AvalAcadReposicao aval = AvalAcadReposicao.ListarPorCodigoAvaliacao(codigo); if (aval != null) { if (Sessao.UsuarioMatricula == aval.Professor.MatrProfessor) { return(View(aval)); } } } return(RedirectToAction("Index")); }
public ActionResult CarregarAlunos(string codigo) { if (!String.IsNullOrWhiteSpace(codigo)) { AvalAcadReposicao aval = AvalAcadReposicao.ListarPorCodigoAvaliacao(codigo); var result = from alunos in aval.AlunosRealizaram select new { Matricula = alunos.MatrAluno, Nome = alunos.Usuario.PessoaFisica.Nome, FlagCorrecaoPendente = aval.Avaliacao.AvalPessoaResultado.Single(r => r.CodPessoaFisica == alunos.Usuario.CodPessoaFisica).FlagParcial }; return(Json(result)); } return(Json(null)); }
public ActionResult Realizar(string codigo) { if (!String.IsNullOrWhiteSpace(codigo)) { AvalAcadReposicao aval = AvalAcadReposicao.ListarPorCodigoAvaliacao(codigo); if (aval.Avaliacao.FlagPendente && aval.Avaliacao.FlagLiberada && aval.Avaliacao.FlagAgora && aval.Alunos.FirstOrDefault(a => a.MatrAluno == Sessao.UsuarioMatricula) != null) { Sessao.Inserir("RealizandoAvaliacao", true); return(View(aval)); } } return(RedirectToAction("Agendada", new { codigo = codigo })); }
public ActionResult DetalheIndividual(string codigo, string matricula) { if (!StringExt.IsNullOrWhiteSpace(codigo, matricula)) { AvalAcadReposicao aval = AvalAcadReposicao.ListarPorCodigoAvaliacao(codigo); if (aval != null) { int codPessoaFisica = Usuario.ObterPessoaFisica(matricula); AvalPessoaResultado model = aval.Avaliacao.AvalPessoaResultado.FirstOrDefault(r => r.CodPessoaFisica == codPessoaFisica); if (model != null) { return(PartialView("_Individual", model)); } } } return(null); }
public ActionResult CarregarQuestoesDiscursivas(string codigo) { if (!String.IsNullOrWhiteSpace(codigo)) { AvalAcadReposicao aval = AvalAcadReposicao.ListarPorCodigoAvaliacao(codigo); var result = from questao in aval.Avaliacao.Questao where questao.CodTipoQuestao == TipoQuestao.DISCURSIVA orderby questao.CodQuestao select new { codQuestao = questao.CodQuestao, questaoEnunciado = questao.Enunciado, questaoChaveResposta = questao.ChaveDeResposta, flagCorrecaoPendente = aval.Avaliacao.PessoaResposta.Where(r => r.CodQuestao == questao.CodQuestao && !r.RespNota.HasValue).Count() > 0 }; return(Json(result)); } return(Json(null)); }
public ActionResult Configurar(string codigo) { TempData[$"listaQuestoesAntigas{codigo.ToUpper()}"] = new List <AvalTemaQuestao>(); TempData[$"listaQuestoesNovas{codigo.ToUpper()}"] = new List <AvalTemaQuestao>(); TempData[$"listaQuestoesPossiveisObj{codigo.ToUpper()}"] = new List <QuestaoTema>(); TempData[$"listaQuestoesPossiveisDisc{codigo.ToUpper()}"] = new List <QuestaoTema>(); TempData[$"listaQuestoesIndices{codigo.ToUpper()}"] = new List <int>(); TempData[$"listaQuestoesRecentes{codigo.ToUpper()}"] = new List <int>(); if (!String.IsNullOrWhiteSpace(codigo) && !Sistema.AvaliacaoUsuario.ContainsKey(codigo)) { AvalAcadReposicao repo = AvalAcadReposicao.ListarPorCodigoAvaliacao(codigo); if (repo != null && repo.Professor.MatrProfessor == Sessao.UsuarioMatricula && repo.Avaliacao.AvalPessoaResultado.Count == 0) { return(View(repo)); } } return(RedirectToAction("Index")); }
public ActionResult Agendar(string codigo) { if (String.IsNullOrWhiteSpace(codigo) || Sistema.AvaliacaoUsuario.ContainsKey(codigo)) { return(RedirectToAction("Index")); } AvalAcadReposicao aval = AvalAcadReposicao.ListarPorCodigoAvaliacao(codigo); if (aval.Professor.MatrProfessor == Sessao.UsuarioMatricula) { var model = new AvaliacaoAgendarViewModel(); model.Avaliacao = aval.Avaliacao; model.Salas = Sala.ListarOrdenadamente(); return(View(model)); } return(RedirectToAction("Index")); }
public ActionResult Agendar(string codigo, FormCollection form) { string strCodSala = form["ddlSala"]; string data = form["txtData"]; string horaInicio = form["txtHoraInicio"]; string horaTermino = form["txtHoraTermino"]; if (!StringExt.IsNullOrWhiteSpace(strCodSala, data, horaInicio, horaTermino)) { AvalAcadReposicao aval = AvalAcadReposicao.ListarPorCodigoAvaliacao(codigo); if (aval.Professor.MatrProfessor == Sessao.UsuarioMatricula) { // Sala int codSala; int.TryParse(strCodSala, out codSala); Sala sala = Sala.ListarPorCodigo(codSala); if (sala != null) { aval.Sala = sala; } // Data de Aplicacao DateTime dtAplicacao = DateTime.Parse(data + " " + horaInicio, new CultureInfo("pt-BR")); DateTime dtAplicacaoTermino = DateTime.Parse(data + " " + horaTermino, new CultureInfo("pt-BR")); if (dtAplicacao.IsFuture() && dtAplicacaoTermino.IsFuture() && dtAplicacaoTermino > dtAplicacao) { aval.Avaliacao.DtAplicacao = dtAplicacao; aval.Avaliacao.Duracao = Convert.ToInt32((dtAplicacaoTermino - aval.Avaliacao.DtAplicacao.Value).TotalMinutes); } aval.Avaliacao.FlagLiberada = false; Repositorio.Commit(); } } return(RedirectToAction("Agendada", new { codigo = codigo })); }
public void Desistir(string codigo) { int codPessoaFisica = Usuario.ObterPessoaFisica(Sessao.UsuarioMatricula); if (!String.IsNullOrWhiteSpace(codigo)) { AvalAcadReposicao aval = AvalAcadReposicao.ListarPorCodigoAvaliacao(codigo); if (aval.Alunos.SingleOrDefault(a => a.MatrAluno == Sessao.UsuarioMatricula) != null && aval.Avaliacao.AvalPessoaResultado.SingleOrDefault(a => a.CodPessoaFisica == codPessoaFisica) == null) { var avalPessoaResultado = new AvalPessoaResultado(); avalPessoaResultado.CodPessoaFisica = codPessoaFisica; avalPessoaResultado.HoraTermino = DateTime.Now; avalPessoaResultado.QteAcertoObj = 0; avalPessoaResultado.Nota = 0; foreach (var avaliacaoTema in aval.Avaliacao.AvaliacaoTema) { foreach (var avalTemaQuestao in avaliacaoTema.AvalTemaQuestao) { var avalQuesPessoaResposta = new AvalQuesPessoaResposta(); avalQuesPessoaResposta.CodPessoaFisica = codPessoaFisica; if (avalTemaQuestao.QuestaoTema.Questao.CodTipoQuestao == TipoQuestao.OBJETIVA) { avalQuesPessoaResposta.RespAlternativa = -1; } avalQuesPessoaResposta.RespNota = 0; avalTemaQuestao.AvalQuesPessoaResposta.Add(avalQuesPessoaResposta); } } aval.Avaliacao.AvalPessoaResultado.Add(avalPessoaResultado); Repositorio.Commit(); Sessao.Inserir("RealizandoAvaliacao", false); } } }
public ActionResult TrocarQuestao(string codigoAvaliacao, int tipo, int indice, int codQuestao) { List <AvalTemaQuestao> antigas = (List <AvalTemaQuestao>)TempData[$"listaQuestoesAntigas{codigoAvaliacao.ToUpper()}"]; List <AvalTemaQuestao> novas = (List <AvalTemaQuestao>)TempData[$"listaQuestoesNovas{codigoAvaliacao.ToUpper()}"]; List <QuestaoTema> questoesTrocaObj = (List <QuestaoTema>)TempData[$"listaQuestoesPossiveisObj{codigoAvaliacao.ToUpper()}"]; List <QuestaoTema> questoesTrocaDisc = (List <QuestaoTema>)TempData[$"listaQuestoesPossiveisDisc{codigoAvaliacao.ToUpper()}"]; List <int> indices = (List <int>)TempData[$"listaQuestoesIndices{codigoAvaliacao.ToUpper()}"]; List <int> recentes = (List <int>)TempData[$"listaQuestoesRecentes{codigoAvaliacao.ToUpper()}"]; TempData.Keep(); if (!String.IsNullOrEmpty(codigoAvaliacao)) { AvalAcadReposicao repo = AvalAcadReposicao.ListarPorCodigoAvaliacao(codigoAvaliacao); if (repo != null && repo.Professor.MatrProfessor == Sessao.UsuarioMatricula) { List <QuestaoTema> AvalQuestTema = repo.Avaliacao.QuestaoTema; QuestaoTema questao = null; if (tipo == TipoQuestao.OBJETIVA) { if (questoesTrocaObj.Count <= 0) { TempData[$"listaQuestoesPossiveisObj{codigoAvaliacao.ToUpper()}"] = Questao.ObterNovasQuestoes(AvalQuestTema, tipo); questoesTrocaObj = (List <QuestaoTema>)TempData[$"listaQuestoesPossiveisObj{codigoAvaliacao.ToUpper()}"]; } int random = Sistema.Random.Next(0, questoesTrocaObj.Count); questao = questoesTrocaObj.ElementAtOrDefault(random); } else if (tipo == TipoQuestao.DISCURSIVA) { if (questoesTrocaDisc.Count <= 0) { TempData[$"listaQuestoesPossiveisDisc{codigoAvaliacao.ToUpper()}"] = Questao.ObterNovasQuestoes(AvalQuestTema, tipo); questoesTrocaDisc = (List <QuestaoTema>)TempData[$"listaQuestoesPossiveisDisc{codigoAvaliacao.ToUpper()}"]; } int random = Sistema.Random.Next(0, questoesTrocaDisc.Count); questao = questoesTrocaDisc.ElementAtOrDefault(random); } if (questao != null) { if (!indices.Contains(indice)) { AvalTemaQuestao aqtAntiga = (from atq in Repositorio.GetInstance().AvalTemaQuestao where atq.Ano == repo.Ano && atq.Semestre == repo.Semestre && atq.CodTipoAvaliacao == repo.CodTipoAvaliacao && atq.NumIdentificador == repo.NumIdentificador && atq.CodQuestao == codQuestao select atq).FirstOrDefault(); antigas.Add(aqtAntiga); indices.Add(indice); } int index = indices.IndexOf(indice); var atqNova = new AvalTemaQuestao(); atqNova.Ano = repo.Avaliacao.Ano; atqNova.Semestre = repo.Avaliacao.Semestre; atqNova.CodTipoAvaliacao = repo.Avaliacao.CodTipoAvaliacao; atqNova.NumIdentificador = repo.Avaliacao.NumIdentificador; atqNova.QuestaoTema = questao; if (novas.Count > index) { novas.RemoveAt(index); } if (recentes.Count > index) { recentes.RemoveAt(index); } novas.Insert(index, atqNova); recentes.Insert(index, codQuestao); ViewData["Index"] = indice; return(PartialView("_QuestaoConfigurar", questao.Questao)); } } } return(Json(String.Empty)); }
public ActionResult Resultado(string codigo, FormCollection form) { int codPessoaFisica = Usuario.ObterPessoaFisica(Sessao.UsuarioMatricula); if (!String.IsNullOrWhiteSpace(codigo)) { AvalAcadReposicao aval = AvalAcadReposicao.ListarPorCodigoAvaliacao(codigo); if (aval.Alunos.SingleOrDefault(a => a.MatrAluno == Sessao.UsuarioMatricula) != null && aval.Avaliacao.AvalPessoaResultado.SingleOrDefault(a => a.CodPessoaFisica == codPessoaFisica) == null) { var avalPessoaResultado = new AvalPessoaResultado(); avalPessoaResultado.CodPessoaFisica = codPessoaFisica; avalPessoaResultado.HoraTermino = DateTime.Now; avalPessoaResultado.QteAcertoObj = 0; double quantidadeObjetiva = 0; foreach (var avaliacaoTema in aval.Avaliacao.AvaliacaoTema) { foreach (var avalTemaQuestao in avaliacaoTema.AvalTemaQuestao) { var avalQuesPessoaResposta = new AvalQuesPessoaResposta(); avalQuesPessoaResposta.CodPessoaFisica = codPessoaFisica; if (avalTemaQuestao.QuestaoTema.Questao.CodTipoQuestao == TipoQuestao.OBJETIVA) { quantidadeObjetiva++; int respAlternativa = -1; string strRespAlternativa = form["rdoResposta" + avalTemaQuestao.QuestaoTema.Questao.CodQuestao]; if (!String.IsNullOrWhiteSpace(strRespAlternativa)) { int.TryParse(strRespAlternativa, out respAlternativa); } avalQuesPessoaResposta.RespAlternativa = respAlternativa; if (avalTemaQuestao.QuestaoTema.Questao.Alternativa.First(q => q.FlagGabarito).CodOrdem == avalQuesPessoaResposta.RespAlternativa) { avalQuesPessoaResposta.RespNota = 10; avalPessoaResultado.QteAcertoObj++; } else { avalQuesPessoaResposta.RespNota = 0; } } else { avalQuesPessoaResposta.RespDiscursiva = form["txtResposta" + avalTemaQuestao.QuestaoTema.Questao.CodQuestao].Trim(); } avalQuesPessoaResposta.RespComentario = !String.IsNullOrWhiteSpace(form["txtComentario" + avalTemaQuestao.QuestaoTema.Questao.CodQuestao]) ? form["txtComentario" + avalTemaQuestao.QuestaoTema.Questao.CodQuestao].Trim() : null; avalTemaQuestao.AvalQuesPessoaResposta.Add(avalQuesPessoaResposta); } } IEnumerable <AvalQuesPessoaResposta> lstAvalQuesPessoaResposta = aval.Avaliacao.PessoaResposta.Where(r => r.CodPessoaFisica == codPessoaFisica); avalPessoaResultado.Nota = lstAvalQuesPessoaResposta.Average(r => r.RespNota); aval.Avaliacao.AvalPessoaResultado.Add(avalPessoaResultado); Repositorio.Commit(); var model = new AvaliacaoResultadoViewModel(); model.Avaliacao = aval.Avaliacao; model.Porcentagem = (avalPessoaResultado.QteAcertoObj.Value / quantidadeObjetiva) * 100; Sessao.Inserir("RealizandoAvaliacao", false); return(View(model)); } return(RedirectToAction("Detalhe", new { codigo = aval.Avaliacao.CodAvaliacao })); } return(RedirectToAction("Index")); }