Tooark.Notifications 4.0.1

dotnet add package Tooark.Notifications --version 4.0.1
                    
NuGet\Install-Package Tooark.Notifications -Version 4.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Tooark.Notifications" Version="4.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Tooark.Notifications" Version="4.0.1" />
                    
Directory.Packages.props
<PackageReference Include="Tooark.Notifications" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Tooark.Notifications --version 4.0.1
                    
#r "nuget: Tooark.Notifications, 4.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Tooark.Notifications@4.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Tooark.Notifications&version=4.0.1
                    
Install as a Cake Addin
#tool nuget:?package=Tooark.Notifications&version=4.0.1
                    
Install as a Cake Tool

Tooark.Notifications

Biblioteca para criação e gerenciamento de notificações e alertas, facilitando a comunicação e monitoramento para projetos .NET.

Conteúdo

🔧 Instalação

dotnet add package Tooark.Notifications

O pacote não tem configuração. Notification é usada por herança, em classes que acumulam o resultado de várias verificações — como os objetos de valor e as entidades do Tooark —, e os mutadores são protegidos: quem acumula a notificação é o próprio objeto, não quem o consome.

As mensagens são guardadas como chave, e não como texto final. Quem traduz é a camada que monta a resposta, como o ResponseDto do Tooark.Dtos.

Classes

As classes disponíveis são:

1. Item de Notificação

Funcionalidade: Representa a estrutura de um item de notificação com mensagem, chave e código de erro. Os valores são normalizados na construção e a instância é somente leitura.

Propriedades:

  • Message: A mensagem da notificação.
  • Key: A chave da notificação.
  • Code: O código de erro da notificação.

Métodos:

  • NotificationItem(string? message): Cria uma nova instância com a chave Unknown e o código T.ERR.
  • NotificationItem(string? message, string? key): Cria uma nova instância com a chave informada e o código T.ERR.
  • NotificationItem(string? message, string? key, string? code): Cria uma nova instância com a chave e o código informados.

Os três parâmetros aceitam ausência de valor porque o construtor já a tratava: mensagem em branco vira Notifications.MessageUnknown, chave em branco vira Unknown e código em branco vira T.ERR. A assinatura declarava não anulável e o corpo verificava nulo — quem passava um string? recebia aviso do compilador para um caminho que sempre funcionou.

  • ToString(): Retorna a mensagem da notificação.
  • string: Converte implicitamente a instância de NotificationItem para uma string, retornando a mensagem. Instância nula retorna string vazia.
  • NotificationItem: Converte implicitamente uma string para uma instância de NotificationItem, com a chave Unknown e o código T.ERR.

Normalização dos valores:

Parâmetro Nulo, vazio ou em branco Demais valores
message Notifications.MessageNullEmpty Espaços das extremidades removidos
key Unknown Todos os espaços em branco removidos, incluindo tabulação e quebra de linha
code T.ERR Espaços das extremidades removidos

Exemplo de Uso

2. Notificação

Funcionalidade: Classe abstrata que gerencia a lista de notificações do objeto que a herda. É a base de ValueObject, BaseEntity e Validation.

A criação e a limpeza de notificações são protegidas: apenas o próprio objeto decide o que notifica. A agregação de notificações já existentes é pública, permitindo compor o resultado da validação de outros objetos.

Propriedades:

  • Notifications: Retorna a lista somente leitura de notificações.
  • IsValid: Retorna True se a lista de notificações estiver vazia.
  • Count: Retorna a quantidade de notificações.
  • Codes: Retorna a lista de códigos de erros das notificações.
  • Keys: Retorna a lista de chaves das notificações.
  • Messages: Retorna a lista de mensagens das notificações.

Métodos públicos:

  • AddNotifications(Notification notification): Adiciona as notificações de outra notificação à lista de notificações.
  • AddNotifications(params Notification[] notifications): Adiciona as notificações de uma coleção de notificações à lista de notificações.

Métodos protegidos:

  • AddNotification(NotificationItem notification): Adiciona um item de notificação à lista de notificações.
  • AddNotification(Type property, string message): Adiciona um item de notificação usando o nome do tipo como chave.
  • AddNotification(Type property, string message, string code): Adiciona um item de notificação usando o nome do tipo como chave, com código de erro.
  • AddNotification(string message, string key): Adiciona um item de notificação com mensagem e chave.
  • AddNotification(string message, string key, string code): Adiciona um item de notificação com mensagem, chave e código de erro.
  • AddNotifications(ICollection<NotificationItem> notifications): Adiciona uma coleção de itens de notificação à lista de notificações.
  • Clear(): Limpa a lista de notificações.

Tratamento de valores nulos:

Situação Comportamento
Argumento nulo em AddNotification ou AddNotifications Adiciona a notificação Notifications.NotificationNull
Item nulo dentro de uma coleção Ignorado, sem alterar a lista
Adicionar a própria instância em AddNotifications Sem efeito, a lista não é alterada

Exemplo de Uso

3. Mensagens de Erro

Funcionalidade: Classe estática NotificationErrorMessages com as mensagens geradas pela própria biblioteca. São chaves de tradução, e não textos finais.

Constante Valor Quando ocorre
MessageIsNullOrEmpty Notifications.MessageNullEmpty Mensagem nula, vazia ou composta apenas por espaços em branco
NotificationIsNull Notifications.NotificationNull Notificação ou coleção recebida como argumento é nula

Exemplo de Uso

Item de Notificação

// Mensagem, com chave 'Unknown' e código 'T.ERR'
var notification1 = new NotificationItem("Mensagem de exemplo");

// Mensagem e chave, com código 'T.ERR'
var notification2 = new NotificationItem("Mensagem de exemplo", "ChaveExemplo");

// Mensagem, chave e código
var notification3 = new NotificationItem("Mensagem de exemplo", "ChaveExemplo", "XPTO1");

// A chave tem os espaços em branco removidos
var notification4 = new NotificationItem("Mensagem de exemplo", "Chave Exemplo");
var key = notification4.Key; // "ChaveExemplo"

Notificação

// A adição de notificações é protegida: só o próprio objeto notifica os seus erros
public class MyNotification : Notification
{
  public void NotifyError(string message)
  {
    AddNotification(message, "Error", "XPTO1");
  }
}

var myNotification = new MyNotification();

myNotification.NotifyError("Ocorreu um erro.");

var isValid = myNotification.IsValid; // False
var count = myNotification.Count; // 1
var codes = myNotification.Codes; // ["XPTO1"]
var keys = myNotification.Keys; // ["Error"]
var messages = myNotification.Messages; // ["Ocorreu um erro."]
var notifications = myNotification.Notifications; // [NotificationItem { Message = "Ocorreu um erro.", Key = "Error", Code = "XPTO1" }]
// A agregação é pública: notificações já existentes podem ser compostas de fora do objeto
public class MyValidation : Notification
{ }

var validation = new MyValidation();

validation.AddNotifications(myNotification, myOtherNotification);

Contribuição

Contribuições são bem-vindas! Sinta-se à vontade para abrir issues e pull requests no repositório Tooark.Notifications.

Licença

Este projeto está licenciado sob a licença BSD 3-Clause. Veja o arquivo LICENSE para mais detalhes.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.
  • net8.0

    • No dependencies.

NuGet packages (6)

Showing the top 5 NuGet packages that depend on Tooark.Notifications:

Package Downloads
Tooark.Validations

Package for managing validations and standards for .NET applications.

Tooark.Exceptions

Package for creating exceptions for .NET applications.

Tooark.ValueObjects

Package for managing predefined and validated Value Objects for .NET applications.

Tooark.Entities

Package for managing base entities in .NET applications.

Tooark.Dtos

Package for managing base DTOs in .NET applications.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
4.0.1 343 8/25/2026
4.0.0 356 8/25/2026
3.3.5 298 8/25/2026
3.3.4 470 8/12/2026
3.3.3 575 7/27/2026
3.3.2 606 6/11/2026
3.3.1 371 6/6/2026
3.3.0 345 4/17/2026
3.2.3 302 4/17/2026
3.2.2 294 3/23/2026
3.2.1 298 3/23/2026
3.2.0 375 1/21/2026
3.1.0 307 1/10/2026
3.0.0 360 1/9/2026
2.3.4 256 8/25/2026
2.3.3 288 7/27/2026
2.3.2 288 4/17/2026
2.3.1 282 3/23/2026
2.3.0 302 1/21/2026
2.2.1 301 1/6/2026
Loading failed