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