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)) { AvalAcademica acad = AvalAcademica.ListarPorCodigoAvaliacao(codigo); if (acad != null && acad.Avaliacao.AvalPessoaResultado.Count == 0) { string matricula = Helpers.Sessao.UsuarioMatricula; Professor professor = Professor.ListarPorMatricula(matricula); if (professor != null) { if (professor.CodProfessor == acad.CodProfessor) { return(View(acad)); } } } } return(RedirectToAction("Index")); }
public ActionResult Pendente() { string matricula = Sessao.UsuarioMatricula; int codProfessor = Professor.ListarPorMatricula(matricula).CodProfessor; return(View(AvalAcademica.ListarCorrecaoPendentePorProfessor(codProfessor))); }
public ActionResult CarregarRespostasDiscursivas(string codigo, string matrAluno) { if (!String.IsNullOrWhiteSpace(codigo) && !String.IsNullOrWhiteSpace(matrAluno)) { AvalAcademica acad = AvalAcademica.ListarPorCodigoAvaliacao(codigo); Aluno aluno = Aluno.ListarPorMatricula(matrAluno); int codPessoaFisica = aluno.Usuario.PessoaFisica.CodPessoa; var retorno = from alunoResposta in acad.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) { AvalAcademica avalAcad = AvalAcademica.ListarPorCodigoAvaliacao(codAvaliacao); string tempo = avalAcad.Avaliacao.DtAplicacao.Value.ToLeftTimeString(); int quantidadeMilissegundo = 0; bool flagLiberada = avalAcad.Avaliacao.FlagLiberada && avalAcad.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 Justificar(string codigo, Dictionary <string, string> justificacao) { AvalAcademica aval = AvalAcademica.ListarPorCodigoAvaliacao(codigo); if (aval.Professor.Usuario.Matricula == Sessao.UsuarioMatricula) { if (Usuario.Verificar(justificacao["senha"])) { Aluno aluno = Aluno.ListarPorMatricula(justificacao["aluno"]); AvalPessoaResultado apr = aval.Avaliacao.AvalPessoaResultado.FirstOrDefault(p => p.CodPessoaFisica == aluno.Usuario.CodPessoaFisica); if (apr == null) { var avalPessoaResultado = new AvalPessoaResultado(); avalPessoaResultado.CodPessoaFisica = aluno.Usuario.CodPessoaFisica; avalPessoaResultado.HoraTermino = aval.Avaliacao.DtAplicacao; avalPessoaResultado.QteAcertoObj = 0; avalPessoaResultado.Nota = 0; avalPessoaResultado.Justificacao.Add(new Justificacao() { Professor = aval.Professor, DtCadastro = DateTime.Parse(justificacao["cadastro"], new CultureInfo("pt-BR")), DtConfirmacao = DateTime.Parse(justificacao["confirmacao"], new CultureInfo("pt-BR")), Descricao = justificacao["descricao"] }); aval.Avaliacao.AvalPessoaResultado.Add(avalPessoaResultado); Repositorio.Commit(); } } } return(null); }
public ActionResult CarregarRespostasPorQuestao(string codigo, string codQuestao) { if (!StringExt.IsNullOrWhiteSpace(codigo, codQuestao)) { AvalAcademica acad = AvalAcademica.ListarPorCodigoAvaliacao(codigo); int codQuestaoTemp = int.Parse(codQuestao); var retorno = from questao in acad.Avaliacao.PessoaResposta orderby questao.PessoaFisica.Nome where questao.CodQuestao == codQuestaoTemp && questao.AvalTemaQuestao.QuestaoTema.Questao.CodTipoQuestao == TipoQuestao.DISCURSIVA select new { alunoMatricula = acad.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 void RecuperarContadoresPrincipal(string matricula) { if (!string.IsNullOrWhiteSpace(matricula)) { if (!UsuarioCache.ContainsKey(matricula)) { UsuarioCache[matricula] = new Dictionary <string, object>(); } if (!UsuarioCache[matricula].ContainsKey("principal")) { Dictionary <string, int> atalho = new Dictionary <string, int>(); atalho.Add("autoavaliacao", AvalAuto.ListarNaoRealizadaPorPessoa(Sistema.UsuarioAtivo[matricula].Usuario.CodPessoaFisica).Count); if (Sistema.UsuarioAtivo[matricula].Usuario.CodCategoria == Categoria.PROFESSOR) { int codProfessor = Models.Professor.ListarPorMatricula(matricula).CodProfessor; var lst = AvalAcademica.ListarCorrecaoPendentePorProfessor(codProfessor).Select(a => a.Avaliacao); lst = lst.Union(AvalCertificacao.ListarCorrecaoPendentePorProfessor(codProfessor).Select(a => a.Avaliacao)); lst = lst.Union(AvalAcadReposicao.ListarCorrecaoPendentePorProfessor(codProfessor).Select(a => a.Avaliacao)); atalho.Add("correcao", lst.Count()); } UsuarioCache[matricula]["principal"] = atalho; } if (Context != null) { Clients.Client(Context.ConnectionId).receberContadores(UsuarioCache[matricula]["principal"]); } } }
public ActionResult Justificar(string codigo) { AvalAcademica aval = AvalAcademica.ListarPorCodigoAvaliacao(codigo); if (aval.Professor.Usuario.Matricula == Sessao.UsuarioMatricula) { return(View(aval)); } return(RedirectToAction("Index")); }
// GET: historico/avaliacao/academica/detalhe/ACAD201520001 public ActionResult Detalhe(string codigo) { if (!String.IsNullOrWhiteSpace(codigo)) { AvalAcademica acad = AvalAcademica.ListarPorCodigoAvaliacao(codigo); if (acad != null) { return(View(acad)); } } return(RedirectToAction("Index")); }
public ActionResult Corrigir(string codigo) { if (!String.IsNullOrWhiteSpace(codigo)) { AvalAcademica acad = AvalAcademica.ListarPorCodigoAvaliacao(codigo); if (acad != null && acad.Avaliacao.FlagCorrecaoPendente && acad.Professor.MatrProfessor == Sessao.UsuarioMatricula) { return(View(acad)); } } return(RedirectToAction("Index")); }
public ActionResult CorrigirQuestaoAluno(string codigo, string matrAluno, string codQuestao, string notaObtida, string profObservacao) { if (!StringExt.IsNullOrWhiteSpace(codigo, matrAluno, codQuestao)) { int codQuesTemp = int.Parse(codQuestao); double nota = Double.Parse(notaObtida.Replace('.', ',')); bool retorno = AvalAcademica.CorrigirQuestaoAluno(codigo, matrAluno, codQuesTemp, nota, profObservacao); return(Json(retorno)); } return(Json(false)); }
// GET: historico/avaliacao/academica/agendada/ACAD201520001 public ActionResult Agendada(string codigo) { if (!String.IsNullOrWhiteSpace(codigo)) { Usuario usuario = Usuario.ListarPorMatricula(Helpers.Sessao.UsuarioMatricula); AvalAcademica acad = AvalAcademica.ListarAgendadaPorUsuario(usuario).FirstOrDefault(a => a.Avaliacao.CodAvaliacao.ToLower() == codigo.ToLower()); if (acad != null) { return(View(acad)); } } return(RedirectToAction("Detalhe", new { codigo = codigo })); }
public ActionResult Pendente() { int codProfessor = Professor.ListarPorMatricula(Sessao.UsuarioMatricula).CodProfessor; IEnumerable <Avaliacao> avaliacoes = AvalAcademica.ListarCorrecaoPendentePorProfessor(codProfessor) .Select(a => a.Avaliacao); avaliacoes = avaliacoes.Union(AvalCertificacao.ListarCorrecaoPendentePorProfessor(codProfessor) .Select(a => a.Avaliacao)); avaliacoes = avaliacoes.Union(AvalAcadReposicao.ListarCorrecaoPendentePorProfessor(codProfessor) .Select(a => a.Avaliacao)); return(View(avaliacoes.OrderBy(a => a.DtAplicacao).ToList())); }
public ActionResult Acompanhar(string codigo) { if (!String.IsNullOrWhiteSpace(codigo)) { if (Sessao.UsuarioCategoriaCodigo == Categoria.PROFESSOR) { AvalAcademica acad = AvalAcademica.ListarPorCodigoAvaliacao(codigo); if (acad != null && acad.Avaliacao.FlagAgendada && acad.Avaliacao.FlagAgora) { return(View(acad)); } } } return(RedirectToAction("Agendada", new { codigo = codigo })); }
public ActionResult Realizar(string codigo) { if (Sessao.UsuarioCategoriaCodigo == Categoria.ALUNO && !String.IsNullOrWhiteSpace(codigo)) { AvalAcademica avalAcad = AvalAcademica.ListarPorCodigoAvaliacao(codigo); if (avalAcad.Avaliacao.FlagPendente && avalAcad.Avaliacao.FlagLiberada && avalAcad.Avaliacao.FlagAgora && avalAcad.Alunos.FirstOrDefault(a => a.MatrAluno == Sessao.UsuarioMatricula) != null) { Sessao.Inserir("RealizandoAvaliacao", true); return(View(avalAcad)); } } return(RedirectToAction("Agendada", new { codigo = codigo })); }
public ActionResult CarregarAlunos(string codigo) { if (!String.IsNullOrWhiteSpace(codigo)) { AvalAcademica acad = AvalAcademica.ListarPorCodigoAvaliacao(codigo); var retorno = from alunos in acad.AlunosRealizaram select new { Matricula = alunos.MatrAluno, Nome = alunos.Usuario.PessoaFisica.Nome, FlagCorrecaoPendente = acad.Avaliacao.AvalPessoaResultado.Single(r => r.CodPessoaFisica == alunos.Usuario.CodPessoaFisica).FlagParcial }; return(Json(retorno)); } return(Json(null)); }
public ActionResult Imprimir(string codigo) { if (!String.IsNullOrWhiteSpace(codigo) && !Sistema.AvaliacaoUsuario.ContainsKey(codigo)) { AvalAcademica acad = AvalAcademica.ListarPorCodigoAvaliacao(codigo); if (acad != null) { string matricula = Helpers.Sessao.UsuarioMatricula; Professor professor = Professor.ListarPorMatricula(matricula); if (professor.CodProfessor == acad.CodProfessor) { return(View(acad)); } } } return(RedirectToAction("Index")); }
public ActionResult DetalheIndividual(string codigo, string matricula) { if (!StringExt.IsNullOrWhiteSpace(codigo, matricula)) { AvalAcademica acad = AvalAcademica.ListarPorCodigoAvaliacao(codigo); if (acad != null) { int codPessoaFisica = Usuario.ObterPessoaFisica(matricula); AvalPessoaResultado model = acad.Avaliacao.AvalPessoaResultado.SingleOrDefault(r => r.CodPessoaFisica == codPessoaFisica); if (model != null) { return(PartialView("_Individual", model)); } } } return(null); }
public ActionResult Academicas(string start, string end) { DateTime inicio = DateTime.Parse(start); DateTime termino = DateTime.Parse(end); Usuario usuario = Sistema.UsuarioAtivo[Sessao.UsuarioMatricula].Usuario; List <AvalAcademica> lstAgendadas = AvalAcademica.ListarAgendadaPorUsuario(usuario, inicio, termino); IEnumerable <Evento> retorno = lstAgendadas.Select(a => new Evento { id = a.Avaliacao.CodAvaliacao, title = a.Avaliacao.CodAvaliacao, start = a.Avaliacao.DtAplicacao.Value.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss"), end = a.Avaliacao.DtTermino.Value.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss"), url = Url.Action("Agendada", "Academica", new { codigo = a.Avaliacao.CodAvaliacao }) }); return(Json(retorno)); }
public ActionResult CarregarQuestoesDiscursivas(string codigo) { if (!String.IsNullOrWhiteSpace(codigo)) { AvalAcademica acad = AvalAcademica.ListarPorCodigoAvaliacao(codigo); var retorno = from questao in acad.Avaliacao.Questao where questao.CodTipoQuestao == TipoQuestao.DISCURSIVA orderby questao.CodQuestao select new { codQuestao = questao.CodQuestao, questaoEnunciado = questao.Enunciado, questaoChaveResposta = questao.ChaveDeResposta, flagCorrecaoPendente = acad.Avaliacao.PessoaResposta.Where(r => r.CodQuestao == questao.CodQuestao && !r.RespNota.HasValue).Count() > 0 }; return(Json(retorno)); } return(Json(null)); }
public ActionResult Agendar(string codigo) { if (String.IsNullOrWhiteSpace(codigo) || Sistema.AvaliacaoUsuario.ContainsKey(codigo)) { return(RedirectToAction("Index")); } AvalAcademica acad = AvalAcademica.ListarPorCodigoAvaliacao(codigo); string matricula = Helpers.Sessao.UsuarioMatricula; Professor professor = Professor.ListarPorMatricula(matricula); if (acad.CodProfessor == professor.CodProfessor) { var model = new AvaliacaoAgendarViewModel(); model.Avaliacao = acad.Avaliacao; model.Turmas = professor.TurmaDiscProfHorario.Select(d => d.Turma).Distinct().OrderBy(t => t.Curso.Descricao).ToList(); model.Salas = Sala.ListarOrdenadamente(); return(View(model)); } return(RedirectToAction("Index")); }
public void Desistir(string codigo) { int codPessoaFisica = Usuario.ObterPessoaFisica(Sessao.UsuarioMatricula); if (!String.IsNullOrWhiteSpace(codigo)) { AvalAcademica aval = AvalAcademica.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> questoesTrocaObjetiva = (List <QuestaoTema>)TempData[$"listaQuestoesPossiveisObj{codigoAvaliacao.ToUpper()}"]; List <QuestaoTema> questoesTrocaDiscursiva = (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.IsNullOrWhiteSpace(codigoAvaliacao)) { AvalAcademica acad = AvalAcademica.ListarPorCodigoAvaliacao(codigoAvaliacao); if (acad != null) { List <QuestaoTema> avalQuestTema = acad.Avaliacao.QuestaoTema; QuestaoTema questao = null; if (tipo == TipoQuestao.OBJETIVA) { if (questoesTrocaObjetiva.Count <= 0) { TempData[$"listaQuestoesPossiveisObj{codigoAvaliacao.ToUpper()}"] = Questao.ObterNovasQuestoes(avalQuestTema, tipo); questoesTrocaObjetiva = (List <QuestaoTema>)TempData[$"listaQuestoesPossiveisObj{codigoAvaliacao.ToUpper()}"]; } int random = Sistema.Random.Next(0, questoesTrocaObjetiva.Count); questao = questoesTrocaObjetiva.ElementAtOrDefault(random); } else if (tipo == TipoQuestao.DISCURSIVA) { if (questoesTrocaDiscursiva.Count <= 0) { TempData[$"listaQuestoesPossiveisDisc{codigoAvaliacao.ToUpper()}"] = Questao.ObterNovasQuestoes(avalQuestTema, tipo); questoesTrocaDiscursiva = (List <QuestaoTema>)TempData[$"listaQuestoesPossiveisDisc{codigoAvaliacao.ToUpper()}"]; } int random = Sistema.Random.Next(0, questoesTrocaDiscursiva.Count); questao = questoesTrocaDiscursiva.ElementAtOrDefault(random); } if (questao != null) { if (!indices.Contains(indice)) { AvalTemaQuestao aqtAntiga = (from atq in Repositorio.GetInstance().AvalTemaQuestao where atq.Ano == acad.Ano && atq.Semestre == acad.Semestre && atq.CodTipoAvaliacao == acad.CodTipoAvaliacao && atq.NumIdentificador == acad.NumIdentificador && atq.CodQuestao == codQuestao select atq).FirstOrDefault(); antigas.Add(aqtAntiga); indices.Add(indice); } int index = indices.IndexOf(indice); var atqNova = new AvalTemaQuestao(); atqNova.Ano = acad.Avaliacao.Ano; atqNova.Semestre = acad.Avaliacao.Semestre; atqNova.CodTipoAvaliacao = acad.Avaliacao.CodTipoAvaliacao; atqNova.NumIdentificador = acad.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 string Gerar(string codigo, int[] justificaticoes, bool nova = false) { DateTime hoje = DateTime.Now; var aval = new AvalAcadReposicao(); AvalAcademica acad = AvalAcademica.ListarPorCodigoAvaliacao(codigo); aval.Avaliacao = new Avaliacao(); aval.Avaliacao.TipoAvaliacao = TipoAvaliacao.ListarPorCodigo(TipoAvaliacao.REPOSICAO); aval.Avaliacao.Ano = hoje.Year; aval.Avaliacao.Semestre = hoje.SemestreAtual(); aval.Avaliacao.NumIdentificador = Avaliacao.ObterNumIdentificador(TipoAvaliacao.REPOSICAO); aval.Avaliacao.DtCadastro = hoje; if (nova) { List <QuestaoTema> lstQuestoes = new List <QuestaoTema>(); List <AvaliacaoTema> lstAvaliacaoTema = acad.Avaliacao.AvaliacaoTema.ToList(); int quantidadeObjetiva = lstAvaliacaoTema.QteQuestoesPorTipo(TipoQuestao.OBJETIVA); int quantidadeDiscursiva = lstAvaliacaoTema.QteQuestoesPorTipo(TipoQuestao.DISCURSIVA); string[] temasCodigo = lstAvaliacaoTema.Select(a => a.CodTema.ToString()).ToArray(); int codDificuldade = acad.Avaliacao.Questao.Max(a => a.CodDificuldade); if (quantidadeObjetiva > 0) { lstQuestoes.AddRange(Questao.ListarPorDisciplina(acad.CodDisciplina, temasCodigo, codDificuldade, TipoQuestao.OBJETIVA, quantidadeObjetiva)); } if (quantidadeDiscursiva > 0) { lstQuestoes.AddRange(Questao.ListarPorDisciplina(acad.CodDisciplina, temasCodigo, codDificuldade, TipoQuestao.DISCURSIVA, quantidadeDiscursiva)); } foreach (var temaCodigo in temasCodigo) { var avalTema = new AvaliacaoTema(); avalTema.Tema = Tema.ListarPorCodigo(acad.CodDisciplina, int.Parse(temaCodigo)); foreach (var queTma in lstQuestoes.Where(q => q.CodTema == int.Parse(temaCodigo))) { var avalTemaQuestao = new AvalTemaQuestao(); avalTemaQuestao.QuestaoTema = queTma; avalTema.AvalTemaQuestao.Add(avalTemaQuestao); } aval.Avaliacao.AvaliacaoTema.Add(avalTema); } } else { foreach (var avaliacaoTema in acad.Avaliacao.AvaliacaoTema) { aval.Avaliacao.AvaliacaoTema.Add(new AvaliacaoTema { Tema = avaliacaoTema.Tema, AvalTemaQuestao = avaliacaoTema.AvalTemaQuestao.Select(a => new AvalTemaQuestao { QuestaoTema = a.QuestaoTema }).ToList() }); } } foreach (var codJustificacao in justificaticoes) { aval.Justificacao.Add(acad.Justificacoes.First(j => j.CodJustificacao == codJustificacao)); } Repositorio.GetInstance().AvalAcadReposicao.Add(aval); Repositorio.Commit(); return(nova ? Url.Action("Configurar", new { codigo = aval.Avaliacao.CodAvaliacao }) : Url.Action("Agendar", new { codigo = aval.Avaliacao.CodAvaliacao })); }
public ActionResult Confirmar(FormCollection formCollection) { if (Sessao.UsuarioCategoriaCodigo != Categoria.PROFESSOR) { if (Session["UrlReferrer"] != null) { return(Redirect(Session["UrlReferrer"].ToString())); } else { return(RedirectToAction("Index", "Principal")); } } var acad = new AvalAcademica(); if (formCollection.HasKeys()) { DateTime hoje = DateTime.Now; /* Chave */ acad.Avaliacao = new Avaliacao(); acad.Avaliacao.TipoAvaliacao = TipoAvaliacao.ListarPorCodigo(TipoAvaliacao.ACADEMICA); acad.Avaliacao.Ano = hoje.Year; acad.Avaliacao.Semestre = hoje.SemestreAtual(); acad.Avaliacao.NumIdentificador = Avaliacao.ObterNumIdentificador(TipoAvaliacao.ACADEMICA); acad.Avaliacao.DtCadastro = hoje; /* Professor */ string matricula = Helpers.Sessao.UsuarioMatricula; acad.Professor = Professor.ListarPorMatricula(matricula); /* Dados */ int codDisciplina = int.Parse(formCollection["ddlDisciplina"]); acad.CodDisciplina = codDisciplina; /* Dificuldade */ int codDificuldade = int.Parse(formCollection["ddlDificuldade"]); /* Quantidade */ int quantidadeObjetiva = 0; int quantidadeDiscursiva = 0; if (formCollection["ddlTipo"] == "3") { int.TryParse(formCollection["txtQteObjetiva"], out quantidadeObjetiva); int.TryParse(formCollection["txtQteDiscursiva"], out quantidadeDiscursiva); } else if (formCollection["ddlTipo"] == "2") { int.TryParse(formCollection["txtQteDiscursiva"], out quantidadeDiscursiva); } else if (formCollection["ddlTipo"] == "1") { int.TryParse(formCollection["txtQteObjetiva"], out quantidadeObjetiva); } /* Temas */ string[] temaCodigos = formCollection["ddlTemas"].Split(','); /* Questões */ List <QuestaoTema> lstQuestoes = new List <QuestaoTema>(); if (quantidadeObjetiva > 0) { lstQuestoes.AddRange(Questao.ListarPorDisciplina(codDisciplina, temaCodigos, codDificuldade, TipoQuestao.OBJETIVA, quantidadeObjetiva)); } if (quantidadeDiscursiva > 0) { lstQuestoes.AddRange(Questao.ListarPorDisciplina(codDisciplina, temaCodigos, codDificuldade, TipoQuestao.DISCURSIVA, quantidadeDiscursiva)); } foreach (var temaCodigo in temaCodigos) { var avalTema = new AvaliacaoTema(); avalTema.Tema = Tema.ListarPorCodigo(codDisciplina, int.Parse(temaCodigo)); foreach (var questaoTema in lstQuestoes.Where(q => q.CodTema == int.Parse(temaCodigo))) { var avalTemaQuestao = new AvalTemaQuestao(); avalTemaQuestao.QuestaoTema = questaoTema; avalTema.AvalTemaQuestao.Add(avalTemaQuestao); } acad.Avaliacao.AvaliacaoTema.Add(avalTema); } AvalAcademica.Inserir(acad); Lembrete.AdicionarNotificacao($"Avaliação Acadêmica {acad.Avaliacao.CodAvaliacao} gerada com sucesso.", Lembrete.POSITIVO); if (quantidadeObjetiva + quantidadeDiscursiva > acad.Avaliacao.Questao.Count) { Lembrete.AdicionarNotificacao("Avaliação Acadêmica gerada com quantidade de questões inferior ao requisitado", Lembrete.NEGATIVO, 0); } } return(View(acad)); }
public ActionResult Agendar(string codigo, FormCollection form) { if (Sessao.UsuarioCategoriaCodigo != Categoria.PROFESSOR) { if (Session["UrlReferrer"] != null) { return(Redirect(Session["UrlReferrer"].ToString())); } else { return(RedirectToAction("Index", "Principal")); } } string codTurma = form["ddlTurma"]; string strCodSala = form["ddlSala"]; string data = form["txtData"]; string horaInicio = form["txtHoraInicio"]; string horaTermino = form["txtHoraTermino"]; if (!StringExt.IsNullOrWhiteSpace(codTurma, strCodSala, data, horaInicio, horaTermino)) { AvalAcademica acad = AvalAcademica.ListarPorCodigoAvaliacao(codigo); string matricula = Sessao.UsuarioMatricula; Professor professor = Professor.ListarPorMatricula(matricula); if (acad.CodProfessor == professor.CodProfessor) { // Turma Turma turma = Turma.ListarPorCodigo(codTurma); if (turma != null) { acad.Turma = turma; } // Sala int codSala; int.TryParse(strCodSala, out codSala); Sala sala = Sala.ListarPorCodigo(codSala); if (sala != null) { acad.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) { acad.Avaliacao.DtAplicacao = dtAplicacao; acad.Avaliacao.Duracao = Convert.ToInt32((dtAplicacaoTermino - acad.Avaliacao.DtAplicacao.Value).TotalMinutes); } acad.Avaliacao.FlagLiberada = false; Repositorio.Commit(); } } return(RedirectToAction("Agendada", new { codigo = codigo })); }
public void RecuperarLembretes(string matricula) { if (!string.IsNullOrWhiteSpace(matricula)) { if (!UsuarioLembreteVisualizado.ContainsKey(matricula)) { UsuarioLembreteVisualizado[matricula] = new List <string>(); } if (!UsuarioLembrete.ContainsKey(matricula)) { UsuarioLembrete[matricula] = new Dictionary <string, object>(); } Usuario usuario = Sistema.UsuarioAtivo[matricula].Usuario; if (!UsuarioLembreteVisualizado[matricula].Contains(LEMBRETE_INSTITUCIONAL)) { if (!UsuarioLembrete[matricula].ContainsKey(LEMBRETE_INSTITUCIONAL)) { if (AvalAvi.ListarPorUsuario(usuario.Matricula).Count > 0) { UsuarioLembrete[matricula][LEMBRETE_INSTITUCIONAL] = new Dictionary <string, string>() { { "Id", LEMBRETE_INSTITUCIONAL }, { "Mensagem", "Há Av. Institucionais em andamento no momento." }, { "Botao", "Visualizar" }, { "Url", "/institucional/andamento" } }; } } } if (!UsuarioLembreteVisualizado[matricula].Contains(LEMBRETE_ACADEMICA)) { if (!UsuarioLembrete[matricula].ContainsKey(LEMBRETE_ACADEMICA)) { if (AvalAcademica.ListarAgendadaPorUsuario(usuario, DateTime.Now, DateTime.Now.AddHours(24)).Count > 0) { UsuarioLembrete[matricula][LEMBRETE_ACADEMICA] = new Dictionary <string, string>() { { "Id", LEMBRETE_ACADEMICA }, { "Mensagem", "Há Avaliações Acadêmicas agendadas para as próximas 24 horas." }, { "Botao", "Visualizar" }, { "Url", "/principal/agenda" } }; } } } if (!UsuarioLembreteVisualizado[matricula].Contains(LEMBRETE_CERTIFICACAO)) { if (!UsuarioLembrete[matricula].ContainsKey(LEMBRETE_CERTIFICACAO)) { if (AvalCertificacao.ListarAgendadaPorUsuario(usuario, DateTime.Now, DateTime.Now.AddHours(24)).Count > 0) { UsuarioLembrete[matricula][LEMBRETE_CERTIFICACAO] = new Dictionary <string, string>() { { "Id", LEMBRETE_CERTIFICACAO }, { "Mensagem", "Há Avaliações de Certificações agendadas para as próximas 24 horas." }, { "Botao", "Visualizar" }, { "Url", "/principal/agenda" } }; } } } if (!UsuarioLembreteVisualizado[matricula].Contains(LEMBRETE_REPOSICAO)) { if (!UsuarioLembrete[matricula].ContainsKey(LEMBRETE_REPOSICAO)) { if (AvalAcadReposicao.ListarAgendadaPorUsuario(usuario, DateTime.Now, DateTime.Now.AddHours(24)).Count > 0) { UsuarioLembrete[matricula][LEMBRETE_REPOSICAO] = new Dictionary <string, string>() { { "Id", LEMBRETE_REPOSICAO }, { "Mensagem", "Há Reposições agendadas para as próximas 24 horas." }, { "Botao", "Visualizar" }, { "Url", "/principal/agenda" } }; } } } if (Context != null) { Clients.Client(Context.ConnectionId).receberLembretes(UsuarioLembrete[matricula]); } } }
public ActionResult Resultado(string codigo, FormCollection form) { int codPessoaFisica = Usuario.ObterPessoaFisica(Helpers.Sessao.UsuarioMatricula); if (!String.IsNullOrWhiteSpace(codigo)) { AvalAcademica aval = AvalAcademica.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")); }