VOOZH about

URL: https://www.nuget.org/packages/Reo.Core.AutoHistory/

⇱ NuGet Gallery | Reo.Core.AutoHistory 8.0.447




Reo.Core.AutoHistory 8.0.447

dotnet add package Reo.Core.AutoHistory --version 8.0.447
 
 
NuGet\Install-Package Reo.Core.AutoHistory -Version 8.0.447
 
 
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="Reo.Core.AutoHistory" Version="8.0.447" />
 
 
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Reo.Core.AutoHistory" Version="8.0.447" />
 
Directory.Packages.props
<PackageReference Include="Reo.Core.AutoHistory" />
 
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 Reo.Core.AutoHistory --version 8.0.447
 
 
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Reo.Core.AutoHistory, 8.0.447"
 
 
#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 Reo.Core.AutoHistory@8.0.447
 
 
#: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=Reo.Core.AutoHistory&version=8.0.447
 
Install as a Cake Addin
#tool nuget:?package=Reo.Core.AutoHistory&version=8.0.447
 
Install as a Cake Tool
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Reo.Core.AutoHistory

Описание пакета

Пакет Reo.Core.AutoHistory предоставляет функциональность для реализации аудита изменений данных в приложениях. Он позволяет отслеживать операции вставки, обновления и удаления записей в базах данных, а также сохранять дополнительную информацию (например, идентификаторы пользователей, временные метки, названия сущностей). Поддерживается интеграция с MongoDB и PostgreSQL, что делает его универсальным решением для аудита в различных типах приложений.

Основные функции:

  • Отслеживание изменений данных (CRUD-операции).
  • Сохранение метаданных аудита (ID пользователя, время, имя сущности, внешние идентификаторы).
  • Поддержка нескольких баз данных (MongoDB, PostgreSQL).
  • Настройка через DI-контейнер и конфигурационные файлы.

Основные компоненты

1. IAuditEventExtra

Интерфейс, определяющий общие поля для событий аудита (например, UpdateDate, UpdateUserId, EntityName).

2. MongoAuditEventExtra / PostgreSqlAuditEventExtra

Классы, реализующие IAuditEventExtra для MongoDB и PostgreSQL соответственно. Добавляют специфичные поля (например, ExternalId).

3. AuditEventExtraFactory / AuditEventExtraProvider

Сервисы для создания и управления событиями аудита. Используются для генерации объектов IAuditEventExtra на основе данных из приложения.

4. AuditEventExtraMapper

Маппер для преобразования сущностей в объекты IAuditEventExtra, необходимый для корректного сохранения данных в базу.

5. IAuditExternalBase

Интерфейс, определяющий обязательные поля для внешних данных (например, ExternalId).

6. Исключения

  • AutoHistoryDbOptionsException: Выбрасывается при ошибке настройки базы данных.
  • AutoHistoryExtraFieldsMappingException: Выбрасывается при ошибке маппинга полей аудита.

Требования

Версии .NET

  • .NET 6.0 и выше.

Зависимости


Установка

NuGet Package Manager

Install-Package Reo.Core.AutoHistory

.NET CLI

dotnet add package Reo.Core.AutoHistory

Настройка

Регистрация в DI-контейнере (ASP.NET Core)

Добавьте в Startup.cs или Program.cs:

services.AddAutoHistory(options =>
{
 options.UseMongoDb(connectionString: "mongodb://localhost:27017", databaseName: "AuditDb");
 // или
 options.UsePostgreSql(connectionString: "Host=localhost;Database=AuditDb;Username=user;Password=pass");
});

Конфигурационные параметры

Настройки можно указать в appsettings.json:

{
 "AutoHistory": {
 "MongoDb": {
 "ConnectionString": "mongodb://localhost:27017",
 "DatabaseName": "AuditDb"
 },
 "PostgreSql": {
 "ConnectionString": "Host=localhost;Database=AuditDb;Username=user;Password=pass"
 }
 }
}

Использование

Пример 1: Аудит операции вставки

var auditEvent = new MongoAuditEventExtra
{
 UpdateDate = DateTime.UtcNow,
 UpdateUserId = Guid.NewGuid(),
 EntityName = "User",
 ExternalId = "12345"
};

await AuditEventExtraProvider.SaveAsync(auditEvent);

Пример 2: Интеграция с репозиторием

public class UserRepository
{
 private readonly IAuditEventExtraProvider _auditProvider;

 public UserRepository(IAuditEventExtraProvider auditProvider)
 {
 _auditProvider = auditProvider;
 }

 public async Task CreateUserAsync(User user)
 {
 // Логика создания пользователя
 await _auditProvider.SaveAsync(new MongoAuditEventExtra
 {
 UpdateDate = DateTime.UtcNow,
 UpdateUserId = Guid.NewGuid(),
 EntityName = "User",
 ExternalId = user.Id.ToString()
 });
 }
}

Пример 3: Обработка ошибок

try
{
 await AuditEventExtraProvider.SaveAsync(auditEvent);
}
catch (AutoHistoryDbOptionsException ex)
{
 // Обработка ошибки настройки базы данных
 Console.WriteLine($"Ошибка конфигурации: {ex.Message}");
}
catch (AutoHistoryExtraFieldsMappingException ex)
{
 // Обработка ошибки маппинга полей
 Console.WriteLine($"Ошибка маппинга: {ex.Message}");
}

Лицензия

MIT License

Данный пакет распространяется под лицензией MIT. Подробнее см. в файле LICENSE.

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

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
8.0.447 384 7/16/2025
8.0.446 327 7/16/2025
8.0.445 329 7/16/2025
8.0.444 324 7/16/2025
8.0.443 330 7/16/2025
8.0.442 336 7/16/2025
8.0.439 278 7/15/2025
8.0.438 333 7/15/2025
8.0.437 326 7/15/2025
8.0.436 322 7/15/2025
6.0.447 317 7/16/2025
6.0.446 311 7/16/2025
6.0.445 327 7/16/2025
6.0.444 307 7/16/2025
6.0.443 304 7/16/2025
6.0.442 312 7/16/2025
6.0.439 282 7/15/2025
6.0.438 317 7/15/2025
6.0.437 320 7/15/2025
6.0.436 329 7/15/2025
Loading failed