예제 #1
0
        public ActionResult Gerar(FormCollection form)
        {
            if (!StringExt.IsNullOrWhiteSpace(form["txtTitulo"], form["txtObjetivo"]))
            {
                var avi = new AvalAvi();
                /* Chave */
                avi.Avaliacao = new Avaliacao();
                DateTime hoje = DateTime.Now;
                avi.Avaliacao.TipoAvaliacao    = TipoAvaliacao.ListarPorCodigo(TipoAvaliacao.AVI);
                avi.Avaliacao.Ano              = hoje.Year;
                avi.Avaliacao.Semestre         = hoje.SemestreAtual();
                avi.Avaliacao.NumIdentificador = Avaliacao.ObterNumIdentificador(TipoAvaliacao.AVI);
                avi.Avaliacao.DtCadastro       = hoje;
                avi.Avaliacao.FlagLiberada     = false;

                /* AVI */
                avi.Titulo   = form["txtTitulo"];
                avi.Objetivo = form["txtObjetivo"];

                /* Colaborador */
                Colaborador colaborador = Colaborador.ListarPorMatricula(Sessao.UsuarioMatricula);
                avi.CodColabCoordenador = colaborador.CodColaborador;
                avi.Colaborador         = colaborador;

                AvalAvi.Inserir(avi);
                Lembrete.AdicionarNotificacao($"Avaliação Institucional cadastrada com sucesso.", Lembrete.POSITIVO);
                return(RedirectToAction("Questionario", new { codigo = avi.Avaliacao.CodAvaliacao }));
            }
            return(RedirectToAction("Gerar"));
        }
예제 #2
0
        public ActionResult CadastrarQuestao(string codigo, FormCollection form)
        {
            AvalAvi avi = AvalAvi.ListarPorCodigoAvaliacao(codigo);

            if (avi != null && form.HasKeys())
            {
                var questao = new AviQuestao();

                /* Chave */
                questao.AvalAvi         = avi;
                questao.CodAviModulo    = int.Parse(form["ddlModulo"]);
                questao.CodAviCategoria = int.Parse(form["ddlCategoria"]);
                questao.CodAviIndicador = int.Parse(form["ddlIndicador"]);
                questao.CodOrdem        = AviQuestao.ObterNovaOrdem(avi);

                questao.Enunciado  = form["txtEnunciado"].Trim();
                questao.Observacao = !String.IsNullOrWhiteSpace(form["txtObservacao"]) ? form["txtObservacao"].RemoveSpaces() : null;

                if (int.Parse(form["ddlTipo"]) == TipoQuestao.OBJETIVA)
                {
                    int qteAlternativas = int.Parse(form["txtQtdAlternativas"]);

                    for (int i = 1; i <= qteAlternativas; i++)
                    {
                        string enunciado = form["txtAlternativaEnunciado" + i];
                        questao.AviQuestaoAlternativa.Add(new AviQuestaoAlternativa
                        {
                            AviQuestao                = questao,
                            CodAlternativa            = i,
                            Enunciado                 = enunciado,
                            FlagAlternativaDiscursiva = false
                        });
                    }

                    if (form["chkAlternativaDiscursiva"] == "on")
                    {
                        int    codAlternativa = qteAlternativas + 1;
                        string enunciado      = form["txtAlternativaDiscursiva"];
                        questao.AviQuestaoAlternativa.Add(new AviQuestaoAlternativa
                        {
                            AviQuestao                = questao,
                            CodAlternativa            = codAlternativa,
                            Enunciado                 = enunciado,
                            FlagAlternativaDiscursiva = true
                        });
                    }
                }
                else if (int.Parse(form["ddlTipo"]) == TipoQuestao.DISCURSIVA)
                {
                    questao.FlagDiscursiva = true;
                }
                AviQuestao.Inserir(questao);
                return(Json(questao.CodOrdem));
            }
            return(Json(false));
        }
예제 #3
0
 public void EnviarAlternativaDiscursiva(string codigo, int ordem, int alternativa, string resposta)
 {
     if (!String.IsNullOrWhiteSpace(codigo))
     {
         AvalAvi avi = AvalAvi.ListarPorCodigoAvaliacao(codigo);
         if (avi != null && avi.FlagAndamento)
         {
             AviQuestao questao = avi.ObterQuestao(ordem);
             AviQuestaoPessoaResposta.InserirResposta(questao, PessoaFisica.ListarPorMatricula(Sessao.UsuarioMatricula), alternativa, resposta);
         }
     }
 }
예제 #4
0
 public ActionResult Informacao(string codigo)
 {
     if (!String.IsNullOrWhiteSpace(codigo))
     {
         AvalAvi avi = AvalAvi.ListarPorCodigoAvaliacao(codigo);
         if (avi != null)
         {
             return(PartialView("_InstitucionalInformacoes", avi));
         }
     }
     return(null);
 }
예제 #5
0
 // GET: impressao/institucional/avi201520001
 public ActionResult Institucional(string codigo)
 {
     if (!String.IsNullOrWhiteSpace(codigo))
     {
         AvalAvi model = AvalAvi.ListarPorCodigoAvaliacao(codigo);
         if (model != null && model.CodColabCoordenador == Colaborador.ListarPorMatricula(Sessao.UsuarioMatricula).CodColaborador)
         {
             return(View(model));
         }
     }
     return(RedirectToAction("Index", "Principal"));
 }
예제 #6
0
        public ActionResult Configurar(string codigo, string[] questoes)
        {
            if (!String.IsNullOrWhiteSpace(codigo) && questoes.Length > 0)
            {
                AvalAvi avi = AvalAvi.ListarPorCodigoAvaliacao(codigo);

                if (avi != null && !avi.FlagAndamento)
                {
                    avi.OrdenarQuestoes(questoes);
                    return(View(avi));
                }
            }
            return(RedirectToAction("Index"));
        }
예제 #7
0
 public ActionResult SalvarPublico(string codigo, List <Selecao> selecao)
 {
     if (!String.IsNullOrWhiteSpace(codigo))
     {
         AvalAvi avi = AvalAvi.ListarPorCodigoAvaliacao(codigo);
         if (avi != null && !avi.FlagAndamento)
         {
             if (avi.Colaborador.MatrColaborador == Sessao.UsuarioMatricula)
             {
                 avi.AviPublico.Clear();
                 avi.InserirPublico(selecao);
             }
         }
     }
     return(Json("/institucional/agendar/" + codigo));
 }
예제 #8
0
 public ActionResult Resultado(string codigo)
 {
     if (!String.IsNullOrWhiteSpace(codigo))
     {
         AvalAvi avi = AvalAvi.ListarPorCodigoAvaliacao(codigo);
         if (avi != null)
         {
             Colaborador colaborador = Colaborador.ListarPorMatricula(Sessao.UsuarioMatricula);
             if (avi.CodColabCoordenador == colaborador.CodColaborador)
             {
                 return(View(avi));
             }
         }
     }
     return(RedirectToAction("Andamento"));
 }
예제 #9
0
        // GET: institucional/detalhe
        public ActionResult Detalhe(string codigo)
        {
            if (!String.IsNullOrWhiteSpace(codigo))
            {
                AvalAvi avi = AvalAvi.ListarPorCodigoAvaliacao(codigo);
                if (avi != null)
                {
                    if (avi.Colaborador.Usuario.Matricula == Sessao.UsuarioMatricula)
                    {
                        return(View(avi));
                    }
                }
            }

            return(RedirectToAction("Historico"));
        }
예제 #10
0
        public ActionResult Agendar(string codigo)
        {
            if (!String.IsNullOrWhiteSpace(codigo))
            {
                AvalAvi avi = AvalAvi.ListarPorCodigoAvaliacao(codigo);

                if (avi != null && !avi.FlagRealizada)
                {
                    if (avi.FlagPublico)
                    {
                        return(View(avi));
                    }
                    return(RedirectToAction("Publico", new { codigo = codigo }));
                }
            }
            return(RedirectToAction("Index"));
        }
예제 #11
0
 // GET: institucional/realizar/AVI201520002
 public ActionResult Realizar(string codigo)
 {
     if (!String.IsNullOrWhiteSpace(codigo))
     {
         AvalAvi avi = AvalAvi.ListarPorCodigoAvaliacao(codigo);
         if (avi != null && avi.FlagAndamento)
         {
             PessoaFisica pessoa = PessoaFisica.ListarPorMatricula(Sessao.UsuarioMatricula);
             if (avi.Pessoas.Contains(pessoa))
             {
                 var viewModel = new InstitucionalRealizarViewModel();
                 viewModel.Avi       = avi;
                 viewModel.Respostas = AviQuestaoPessoaResposta.ObterRespostasPessoa(avi, pessoa);
                 return(View(viewModel));
             }
         }
     }
     return(RedirectToAction("Andamento"));
 }
예제 #12
0
        public ActionResult Questionario(string codigo)
        {
            if (!String.IsNullOrWhiteSpace(codigo))
            {
                AvalAvi avi = AvalAvi.ListarPorCodigoAvaliacao(codigo);
                if (avi != null && !avi.FlagAndamento)
                {
                    ViewModels.InstitucionalGerarQuestaoViewModel model = new ViewModels.InstitucionalGerarQuestaoViewModel();
                    model.Modulos     = AviModulo.ListarOrdenadamente();
                    model.Categorias  = AviCategoria.ListarOrdenadamente();
                    model.Indicadores = AviIndicador.ListarOrdenadamente();
                    model.Tipos       = TipoQuestao.ListarOrdenadamente();
                    model.Avi         = avi;

                    return(View(model));
                }
            }
            return(RedirectToAction("Index"));
        }
예제 #13
0
 public void RecuperarMenu(string matricula)
 {
     if (!string.IsNullOrWhiteSpace(matricula))
     {
         if (!UsuarioCache.ContainsKey(matricula))
         {
             UsuarioCache[matricula] = new Dictionary <string, object>();
         }
         if (!UsuarioCache[matricula].ContainsKey("menu"))
         {
             Dictionary <string, int> menu = new Dictionary <string, int>();
             menu.Add("avi", AvalAvi.ListarPorUsuario(matricula).Count);
             UsuarioCache[matricula]["menu"] = menu;
         }
         if (Context != null)
         {
             Clients.Client(Context.ConnectionId).receberMenu(UsuarioCache[matricula]["menu"]);
         }
     }
 }
예제 #14
0
        public ActionResult Configurar(string codigo)
        {
            if (!String.IsNullOrWhiteSpace(codigo))
            {
                AvalAvi avi = AvalAvi.ListarPorCodigoAvaliacao(codigo);

                if (avi != null && !avi.FlagAndamento)
                {
                    if (avi.FlagQuestionario)
                    {
                        return(View(avi));
                    }
                    else
                    {
                        return(RedirectToAction("Questionario", new { codigo = codigo }));
                    }
                }
            }
            return(RedirectToAction("Index"));
        }
예제 #15
0
 public void RecuperarContadoresInstitucional(string matricula)
 {
     if (!string.IsNullOrWhiteSpace(matricula))
     {
         if (!UsuarioCache.ContainsKey(matricula))
         {
             UsuarioCache[matricula] = new Dictionary <string, object>();
         }
         if (!UsuarioCache[matricula].ContainsKey("institucional"))
         {
             Dictionary <string, int> atalho = new Dictionary <string, int>();
             atalho.Add("andamento", AvalAvi.ListarPorUsuario(Sessao.UsuarioMatricula).Count);
             UsuarioCache[matricula]["institucional"] = atalho;
         }
         if (Context != null)
         {
             Clients.Client(Context.ConnectionId).receberContadores(UsuarioCache[matricula]["institucional"]);
         }
     }
 }
예제 #16
0
        public ActionResult Agendar(string codigo, FormCollection form)
        {
            if (!StringExt.IsNullOrWhiteSpace(codigo, form["txtDataInicio"], form["txtDataTermino"]))
            {
                AvalAvi avi = AvalAvi.ListarPorCodigoAvaliacao(codigo);

                if (avi != null && !avi.FlagRealizada)
                {
                    if (avi.Questoes.Count > 0)
                    {
                        avi.Avaliacao.DtAplicacao = DateTime.Parse(form["txtDataInicio"] + " 00:00", new CultureInfo("pt-BR"));
                        avi.DtTermino             = DateTime.Parse(form["txtDataTermino"] + " 23:59", new CultureInfo("pt-BR"));

                        Repositorio.Commit();
                        Lembrete.AdicionarNotificacao($"Avaliação Institucional agendada com sucesso.", Lembrete.POSITIVO);
                        return(RedirectToAction("Historico"));
                    }
                    return(RedirectToAction("Questionario", new { codigo = codigo }));
                }
            }
            return(RedirectToAction("Index"));
        }
예제 #17
0
        public ActionResult EditarQuestao(string codigo, FormCollection form)
        {
            AvalAvi avi = AvalAvi.ListarPorCodigoAvaliacao(codigo);

            if (avi != null && form.HasKeys())
            {
                int modulo    = int.Parse(Request.QueryString["modulo"]);
                int categoria = int.Parse(Request.QueryString["categoria"]);
                int indicador = int.Parse(Request.QueryString["indicador"]);
                int ordem     = int.Parse(Request.QueryString["ordem"]);

                AviQuestao questao = avi.ObterQuestao(modulo, categoria, indicador, ordem);

                if (questao != null)
                {
                    questao.Enunciado  = form["txtEditarEnunciado"];
                    questao.Observacao = !String.IsNullOrWhiteSpace(form["txtEditarObservacao"]) ? form["txtEditarObservacao"] : null;

                    int indice = 1;
                    while (!String.IsNullOrWhiteSpace(form["txtEditarAlternativa" + indice]))
                    {
                        AviQuestaoAlternativa alternativa = questao.AviQuestaoAlternativa.FirstOrDefault(a => a.CodAlternativa == indice);
                        alternativa.Enunciado = form["txtEditarAlternativa" + indice];
                        indice++;
                    }

                    if (!String.IsNullOrWhiteSpace(form["txtEditarAlternativaDiscursiva"]))
                    {
                        AviQuestaoAlternativa alternativa = questao.AviQuestaoAlternativa.FirstOrDefault(a => a.FlagAlternativaDiscursiva);
                        alternativa.Enunciado = form["txtEditarAlternativaDiscursiva"];
                    }

                    AviQuestao.Atualizar(questao);
                }
                return(Json(form));
            }
            return(Json(false));
        }
예제 #18
0
        public ActionResult RemoverQuestao(string codigo, int modulo, int categoria, int indicador, int ordem)
        {
            AvalAvi avi = AvalAvi.ListarPorCodigoAvaliacao(codigo);

            if (avi != null)
            {
                var questao = new AviQuestao();

                /* Chave */
                questao.Ano              = avi.Ano;
                questao.Semestre         = avi.Semestre;
                questao.CodTipoAvaliacao = avi.CodTipoAvaliacao;
                questao.NumIdentificador = avi.NumIdentificador;
                questao.CodAviModulo     = modulo;
                questao.CodAviCategoria  = categoria;
                questao.CodAviIndicador  = indicador;
                questao.CodOrdem         = ordem;

                AviQuestao.Remover(questao);
                return(Json(questao.CodOrdem));
            }
            return(Json(false));
        }
예제 #19
0
        public ActionResult Publico(string codigo)
        {
            if (!String.IsNullOrWhiteSpace(codigo))
            {
                AvalAvi avi = AvalAvi.ListarPorCodigoAvaliacao(codigo);

                if (avi != null && !avi.FlagAndamento)
                {
                    if (avi.FlagQuestionario)
                    {
                        var viewModel = new InstitucionalPublicoViewModel();
                        viewModel.Avi          = avi;
                        viewModel.TiposPublico = AviTipoPublico.ListarOrdenadamente();
                        return(View(viewModel));
                    }
                    else
                    {
                        return(RedirectToAction("Questionario", new { codigo = codigo }));
                    }
                }
            }
            return(RedirectToAction("Index"));
        }
예제 #20
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]);
                }
            }
        }
예제 #21
0
 // GET: institucional/andamento
 public ActionResult Andamento() => View(AvalAvi.ListarPorUsuario(Sessao.UsuarioMatricula));