Cebi.NotificacoesAmbiente
Cebi.NotificacoesAmbiente
Essa documentação serve como guia para utilização da biblioteca de notificações, o guia majoritariamente servirá para a utilização em sistemas SSB, mas muito possivelmente funcionará em outros sistemas com algumas alterações
Avisos
A biblioteca só pode ser instalada nos projetos de API, sendo assim só pode ser usada na API
Além disso é necessário a Unit of Work da própria notificação, exemplo:
Pode ser feito um service exclusivo pra ela no projeto de API que realiza o processo sem precisar chamar a unit em cada controller que for ser utilizado a notificação, exemplo:
using Cebi.NotificacoesAmbiente.Dal;
using Cebi.NotificacoesAmbiente.Domain.Enums;
using Cebi.NotificacoesAmbiente.Domain.Interfaces;
using Cebi.NotificacoesAmbiente.Domain.Services;
using Cebi.Util.Domain.Exceptions;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace Cebi.Ssb.DividaAtiva.Api.Services
{
public class NotificacoesAmbienteService
{
private static INotificacoesAmbienteUnitOfWork _unitNotificacao = new NotificacoesAmbienteUnitOfWork();
public static async Task IncluirNotificacaoAmbiente(string emissor, TipoNotificacaoAmbienteEnum tipoNotificacao, string descricao, string url = "",
IEnumerable<int> usuariosIds = null, IEnumerable<int> perfis = null)
{
if (!usuariosIds.Any() && !perfis.Any())
throw new CebiException("Algum alvo é necessário para o envio da notificação");
IncluirNotificacoesAmbienteCommand notificacao = new IncluirNotificacoesAmbienteCommand
{
Emissor = emissor,
Tipo = tipoNotificacao,
Descricao = descricao,
UrlRedirecionamento = url,
UsuariosAlvosIds = usuariosIds,
PerfisAlvosIds = perfis
};
new IncluirNotificacoesAmbienteService(_unitNotificacao).Executar(notificacao);
_unitNotificacao.CompleteAsync();
}
}
}
Exemplo de Uso
var command = new IncluirNotificacoesAmbienteCommand()
{
Emissor = "Teste Url 2",
Tipo = TipoNotificacaoAmbienteEnum.Notificacao,
Descricao = "Teste Divida Ativa",
UsuariosAlvosIds = new List<int> { 59 },
UrlRedirecionamento = "/divida_ativa_ssb/Api/DividaAtiva/Acompanhamento/Receita/UltimoAno/Grafico"
};
new IncluirNotificacoesAmbienteService(_unitNotificacao).Executar(command);
_unitNotificacao.Complete();
O Objeto da notificação (IncluirNotificacoesAmbienteCommand) possui algumas propriedades:
- Emissor - string - Emissor da notificação (mas é um string então pode ser qualquer coisa)
- Tipo - Enum (0 - Notificação, 1 - Aviso, 2 - Erro/Problema, 3 - Manutenção) - Tipo de notificação
- Descrição - string - Descrição da Notificação
- UrlRedirecionamento - string - Url que o usuário é redirecionado quando clica na notificação
- UsuariosAlvosIds - IEnumerable int - Usuários que a notificação vai aparecer
- PerfisAlvosIds - IEnumerable int - Perfis que a notificação vai aparecer
- SistemasAlvos - IEnumerable Enum SIstemas - Sistemas que a notificação vai aparecer (23/10/2024 - Não coloque nada nessa propriedade porque a rotina não implementa ela ainda)
As únicas propriedades obrigatórias são: Emissor, Tipo, Descrição e algum alvo (UsuariosAlvosIds ou PerfisAlvosIds)
Nenhum comentário