Esempio n. 1
0
 public List <Notificacao> GetNotificacoesPosEvento(EStatusEnvioNotificacao status)
 {
     using (var ctx = new DesenvContext())
     {
         return(ctx.tblNotificacao
                .Where(x => x.intStatusEnvio == (int)status &&
                       (x.intTipoEnvio == (int)ETipoEnvioNotificacao.PushExterna || x.intTipoEnvio == (int)ETipoEnvioNotificacao.Todos) &&
                       x.intNotificacaoTipoId == (int)ETipoNotificacao.DisparadaPosEvento)
                .OrderBy(x => x.dteLiberacao)
                .Select(x => new Notificacao
         {
             IdNotificacao = x.intNotificacaoId,
             Titulo = x.txtTitulo,
             Texto = x.txtTexto,
             InfoAdicional = x.txtInfoAdicional,
             DataOriginal = x.dteLiberacao,
             TipoNotificacao = new TipoNotificacao()
             {
                 Id = x.intNotificacaoTipoId
             },
             StatusEnvio = (EStatusEnvioNotificacao)x.intStatusEnvio,
             TipoEnvio = (ETipoEnvioNotificacao)x.intTipoEnvio,
             Matricula = x.intClientID,
             AplicacaoId = x.intApplicationId
         }).ToList());
     }
 }
Esempio n. 2
0
        public List <Notificacao> GetNotificacoesAProcessar(EStatusEnvioNotificacao status)
        {
            var data = Utilidades.GetServerDate();

            using (var ctx = new DesenvContext())
            {
                var notificacoesPendentes = ctx.tblNotificacao
                                            .Where(x => x.intStatusEnvio == (int)status &&
                                                   (x.intTipoEnvio == (int)ETipoEnvioNotificacao.PushExterna || x.intTipoEnvio == (int)ETipoEnvioNotificacao.Todos) &&
                                                   x.dteLiberacao <= data &&
                                                   x.intNotificacaoTipoId != (int)ETipoNotificacao.DisparadaPosEvento)
                                            .OrderBy(x => x.dteLiberacao)
                                            .Select(x => new Notificacao
                {
                    IdNotificacao   = x.intNotificacaoId,
                    Titulo          = x.txtTitulo,
                    Texto           = x.txtTexto,
                    InfoAdicional   = x.txtInfoAdicional,
                    DataOriginal    = x.dteLiberacao,
                    TipoNotificacao = new TipoNotificacao()
                    {
                        Id = x.intNotificacaoTipoId
                    },
                    StatusEnvio = (EStatusEnvioNotificacao)x.intStatusEnvio,
                    TipoEnvio   = (ETipoEnvioNotificacao)x.intTipoEnvio,
                    Matricula   = x.intClientID,
                    AplicacaoId = x.intApplicationId
                }).ToList();

                return(notificacoesPendentes);
            }
        }
Esempio n. 3
0
        public List <DeviceNotificacao> DefinirDevicesNotificacaoPosEvento(Notificacao notificacao, EStatusEnvioNotificacao status)
        {
            var limiteAtraso = DateTime.Now.AddHours(
                Constants.LIMITE_HORAS_NOTIFICACAO * (-1)
                );

            using (var ctx = new DesenvContext())
            {
                return((from n in ctx.tblNotificacaoEvento
                        join d in ctx.tblDeviceToken on n.intContactId equals d.intClientID
                        where n.bitAtivo && d.bitAtivo == true && n.intNotificacaoId.HasValue &&
                        n.dteCadastro.HasValue && n.dteCadastro.Value >= limiteAtraso &&
                        (d.intApplicationId.HasValue && d.intApplicationId.Value == notificacao.AplicacaoId) &&
                        n.intStatus.HasValue && n.intStatus.Value == (int)status
                        select new DeviceNotificacao
                {
                    ClientId = n.intContactId,
                    NotificacaoId = notificacao.IdNotificacao,
                    DeviceToken = d.txtOneSignalToken,
                    Titulo = n.txtTitulo,
                    Mensagem = n.txtDescricao,
                    InfoAdicional = n.Metadados,
                    IdentificadorId = n.intNotificacaoEvento
                }).ToList());
            }
        }