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); }
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); }
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)); }