private bool StatusProvaNotificaAluno(ProvaRecurso.StatusProva status) { var statusNotificados = new ProvaRecurso.StatusProva[] { ProvaRecurso.StatusProva.RecursosEmAnalise, ProvaRecurso.StatusProva.RecursosPróximos }; return(statusNotificados.Contains(status)); }
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); }
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); }