コード例 #1
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);
        }
コード例 #2
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);
        }
コード例 #3
0
        private int AtualizarMetadadosAtivarNotificacoes(List <tblNotificacaoEvento> notificacoes, MetadadoNotificacaoDTO metadado)
        {
            if (notificacoes != null)
            {
                foreach (var notificacao in notificacoes)
                {
                    metadado.IdNotificacao = notificacao.intNotificacaoEvento;
                    notificacao.Metadados  = JsonConvert.SerializeObject(metadado);
                    notificacao.bitAtivo   = true;
                }
            }

            return(_notificacaoRepository.AtualizarNotificacoesPosEvento(notificacoes));
        }