Esempio n. 1
0
        private bool StatusProvaNotificaAluno(ProvaRecurso.StatusProva status)
        {
            var statusNotificados = new ProvaRecurso.StatusProva[]
            {
                ProvaRecurso.StatusProva.RecursosEmAnalise,
                ProvaRecurso.StatusProva.RecursosPróximos
            };

            return(statusNotificados.Contains(status));
        }
Esempio n. 2
0
        public int CriarNotificacoesMudancaStatusProva(int idProva, ProvaRecurso.StatusProva status)
        {
            var qtd = default(int);

            if (StatusProvaNotificaAluno(status))
            {
                qtd = CriarNotificacoesAlunosFavoritaramProva(
                    idProva, Constants.Notificacoes.Recursos.StatusProvaFavoritos,
                    "provas/prova/{0}", status
                    );
            }
            return(qtd);
        }
Esempio n. 3
0
        private int CriarNotificacoesAlunosFavoritaramProva(int idProva, Constants.Notificacoes.Recursos tipo, string pagina,
                                                            ProvaRecurso.StatusProva status = ProvaRecurso.StatusProva.Inexistente)
        {
            var qtd    = default(int);
            var alunos = _exercicioRepository.GetAlunosFavoritaramProva(idProva);

            if (alunos.MatriculasFavoritaram != null && alunos.MatriculasFavoritaram.Any())
            {
                var metadado = new MetadadoNotificacaoDTO
                {
                    Acao   = "abrir_pagina",
                    Pagina = string.Format(pagina, idProva)
                };

                var notificacao        = _notificacaoRepository.Get((int)tipo);
                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, status.GetDescription(), string.Empty
                            ),
                        Mensagem = TrocarParametrosMensagemQuestaoProva(
                            notificacao.Texto, alunos.Prova.Nome, status.GetDescription(), string.Empty
                            ),
                        Metadados = JsonConvert.SerializeObject(metadado),
                        Ativa     = false
                    });
                }
                var lista = _notificacaoRepository.InserirNotificacoesPosEvento(notificacoesEnviar.ToArray());
                qtd = AtualizarMetadadosAtivarNotificacoes(lista, metadado);
            }
            return(qtd);
        }