Beispiel #1
0
        private List <NotificacaoPushResponse> ProcessaEnvioNotificacoes(NotificacaoPushRequest parametros)
        {
            using (MiniProfiler.Current.Step("Processando envio de notificações")) {
                var notificacoesProcessar = _notificacaoRepository.GetNotificacoesAProcessar(EStatusEnvioNotificacao.Processando);
                var retorno = new List <NotificacaoPushResponse> ();

                foreach (var notificacao in notificacoesProcessar)
                {
                    var notificacaoResult = new NotificacaoPushResponse {
                        NotificacaoId = notificacao.IdNotificacao
                    };
                    try {
                        var seletivas = ConfiguraNotificacao(notificacao, parametros);
                        notificacaoResult.OneSignalResponse = SendSeletivasList(seletivas, (Aplicacoes)notificacao.AplicacaoId);
                        notificacaoResult.Sucesso           = true;
                    } catch (Exception ex) {
                        notificacaoResult.Sucesso = false;
                        notificacaoResult.Erro    = ex.Message;
                    }
                    retorno.Add(notificacaoResult);
                    notificacao.StatusEnvio = IsNotificacaoRecorrente(notificacao.TipoNotificacao.Id) ? EStatusEnvioNotificacao.NaoEnviado : EStatusEnvioNotificacao.Enviado;
                    _notificacaoRepository.UpdateNotificacao(notificacao);
                }
                return(retorno);
            }
        }
Beispiel #2
0
        public List <NotificacaoPushResponse> ProcessarFilaNotificacoesPosEvento()
        {
            using (MiniProfiler.Current.Step("processando fila notificações pós evento")) {
                var notificacoesProcessar = _notificacaoRepository.GetNotificacoesPosEvento(EStatusEnvioNotificacao.Processando);
                var retorno = new List <NotificacaoPushResponse> ();

                foreach (var notificacao in notificacoesProcessar)
                {
                    var result = new NotificacaoPushResponse();
                    try {
                        var fila      = _notificacaoRepository.BuscarFilaNotificacaoPosEvento(notificacao.IdNotificacao);
                        var seletivas = AgruparNotificacoesSeletivas(fila, notificacao);
                        result.OneSignalResponse = SendSeletivasList(seletivas, (Aplicacoes)notificacao.AplicacaoId);
                        result.Sucesso           = true;
                    } catch (Exception ex) {
                        result.Sucesso = false;
                        result.Erro    = ex.Message;
                    }
                    result.NotificacaoId = notificacao.IdNotificacao;
                    retorno.Add(result);

                    notificacao.StatusEnvio = EStatusEnvioNotificacao.NaoEnviado;
                    _notificacaoRepository.UpdateNotificacao(notificacao);
                }
                return(retorno);
            }
        }