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); }
public Notificacao GetNotificacao(int idNotificacao) { using (MiniProfiler.Current.Step("Obtendo notificação")) { return(_notificacaoRepository.Get(idNotificacao)); } }