Example #1
0
        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 }));
        }
Example #2
0
        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));
        }
Example #3
0
        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));
        }
Example #4
0
 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"]);
         }
     }
 }
Example #5
0
 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 }));
 }
Example #6
0
        public ActionResult CorrigirQuestaoAluno(string codigo, string matrAluno, int codQuestao, string notaObtida, string profObservacao)
        {
            if (!StringExt.IsNullOrWhiteSpace(codigo, matrAluno) && codQuestao > 0)
            {
                double nota = Double.Parse(notaObtida.Replace('.', ','));

                bool retorno = AvalAcadReposicao.CorrigirQuestaoAluno(codigo, matrAluno, codQuestao, nota, profObservacao);

                return(Json(retorno));
            }
            return(Json(false));
        }
Example #7
0
 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"));
 }
Example #8
0
 public ActionResult Agendada(string codigo)
 {
     if (!String.IsNullOrWhiteSpace(codigo))
     {
         Usuario           usuario = Usuario.ListarPorMatricula(Sessao.UsuarioMatricula);
         AvalAcadReposicao repo    = AvalAcadReposicao.ListarAgendadaPorUsuario(usuario).FirstOrDefault(a => a.Avaliacao.CodAvaliacao.ToLower() == codigo.ToLower());
         if (repo != null)
         {
             return(View(repo));
         }
     }
     return(RedirectToAction("Detalhe", new { codigo = codigo }));
 }
Example #9
0
        // 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"));
        }
Example #10
0
        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()));
        }
Example #11
0
 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"));
 }
Example #12
0
 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));
 }
Example #13
0
 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 }));
 }
Example #14
0
 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);
 }
Example #15
0
        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"));
        }
Example #16
0
        public ActionResult Reposicoes(string start, string end)
        {
            DateTime inicio  = DateTime.Parse(start);
            DateTime termino = DateTime.Parse(end);

            Usuario usuario = Sistema.UsuarioAtivo[Sessao.UsuarioMatricula].Usuario;
            List <AvalAcadReposicao> lstAgendadas = AvalAcadReposicao.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", "Reposicao", new { codigo = a.Avaliacao.CodAvaliacao })
            });

            return(Json(retorno));
        }
Example #17
0
 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));
 }
Example #18
0
        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"));
        }
Example #19
0
        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 }));
        }
Example #20
0
        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);
                }
            }
        }
Example #21
0
        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 }));
        }
Example #22
0
        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));
        }
Example #23
0
        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]);
                }
            }
        }
Example #24
0
        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"));
        }