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