Esempio n. 1
0
        private string ObterMensagemStatusQuestao(QuestaoRecurso.StatusQuestao status)
        {
            var statusInt      = (int)status;
            var statusMensagem = ((Constants.Messages.StatusQuestaoNotificacao)statusInt);

            return(statusMensagem.GetDescription());
        }
Esempio n. 2
0
        private bool StatusQuestaoPrecisaAprovacaoCoordenacao(QuestaoRecurso.StatusQuestao status)
        {
            var statusAprovar = new QuestaoRecurso.StatusQuestao[]
            {
                QuestaoRecurso.StatusQuestao.CabeRecurso,
                QuestaoRecurso.StatusQuestao.NaoCabeRecurso,
            };

            return(statusAprovar.Contains(status));
        }
Esempio n. 3
0
        public int CriarNotificacoesMudancaStatusQuestao(int idQuestao, QuestaoRecurso.StatusQuestao status)
        {
            var qtd          = default(int);
            var questaoRMais = _questaoRepository.IsQuestaoProvaRMais(idQuestao);

            if (!StatusQuestaoNotificaAluno(status, questaoRMais))
            {
                return(qtd);
            }

            var questao = _questaoRepository.GetQuestaoConcursoById(idQuestao);
            ProvaAlunosFavoritoDTO alunos = null;

            if (status == QuestaoRecurso.StatusQuestao.NaoCabeRecurso)
            {
                alunos = _questaoRepository.GetAlunosVotaramForumPre(idQuestao);
            }
            else
            {
                alunos = _exercicioRepository.GetAlunosFavoritaramProva(questao.intProvaID ?? 0);
            }

            if (alunos.MatriculasFavoritaram != null && alunos.MatriculasFavoritaram.Any())
            {
                var metadado = new MetadadoNotificacaoDTO
                {
                    Acao   = "abrir_pagina",
                    Pagina = string.Format("provas/prova/{0}/questao/{1}", questao.intProvaID ?? 0, idQuestao)
                };

                var notificacao        = _notificacaoRepository.Get((int)Constants.Notificacoes.Recursos.StatusQuestaoFavoritos);
                var notificacoesEnviar = new List <NotificacaoPosEventoDTO>();
                foreach (var matricula in alunos.MatriculasFavoritaram)
                {
                    notificacoesEnviar.Add(new NotificacaoPosEventoDTO
                    {
                        Matricula     = matricula,
                        IdNotificacao = notificacao.IdNotificacao,
                        Titulo        = TrocarParametrosMensagemQuestaoProva(
                            notificacao.Titulo, alunos.Prova.Nome, string.Empty, (questao.intOrder ?? 0).ToString()
                            ),
                        Mensagem = TrocarParametrosMensagemQuestaoProva(
                            notificacao.Texto, alunos.Prova.Nome, ObterMensagemStatusQuestao(status), (questao.intOrder ?? 0).ToString()
                            ),
                        Metadados = JsonConvert.SerializeObject(metadado),
                        Ativa     = false
                    });
                }
                var lista = _notificacaoRepository.InserirNotificacoesPosEvento(notificacoesEnviar.ToArray());
                qtd = AtualizarMetadadosAtivarNotificacoes(lista, metadado);
            }
            return(qtd);
        }
Esempio n. 4
0
        public int NotificarMudancaStatusQuestao(int idQuestao, QuestaoRecurso.StatusQuestao status)
        {
            var qtd = default(int);

            if (!StatusQuestaoPrecisaAprovacaoCoordenacao(status))
            {
                qtd = CriarNotificacoesMudancaStatusQuestao(idQuestao, status);
            }
            else if (_questaoRepository.IsQuestaoProvaRMais(idQuestao))
            {
                qtd = CriarNotificacoesMudancaStatusQuestao(idQuestao, QuestaoRecurso.StatusQuestao.EmAnalise);
            }
            return(qtd);
        }
Esempio n. 5
0
        public bool StatusQuestaoNotificaAluno(QuestaoRecurso.StatusQuestao status, bool questaoRMais)
        {
            var statusNotificados = new QuestaoRecurso.StatusQuestao[]
            {
                QuestaoRecurso.StatusQuestao.CabeRecurso,
                QuestaoRecurso.StatusQuestao.AlteradaPelaBanca
            };
            var statusNotificadosApenasRMais = new QuestaoRecurso.StatusQuestao[]
            {
                QuestaoRecurso.StatusQuestao.NaoCabeRecurso,
                QuestaoRecurso.StatusQuestao.EmAnalise
            };

            return(statusNotificados.Contains(status) ||
                   (questaoRMais && statusNotificadosApenasRMais.Contains(status)));
        }
Esempio n. 6
0
 public Task <int> CriarNotificacoesMudancaStatusQuestaoAsync(int idQuestao, QuestaoRecurso.StatusQuestao status)
 {
     return(Task.Factory.StartNew(() => CriarNotificacoesMudancaStatusQuestao(idQuestao, status)));
 }