VOOZH about

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

⇱ NuGet Gallery | Reo.Core.AutoHistory.Abstractions 8.0.447




Reo.Core.AutoHistory.Abstractions 8.0.447

dotnet add package Reo.Core.AutoHistory.Abstractions --version 8.0.447
 
 
NuGet\Install-Package Reo.Core.AutoHistory.Abstractions -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.Abstractions" 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.Abstractions" Version="8.0.447" />
 
Directory.Packages.props
<PackageReference Include="Reo.Core.AutoHistory.Abstractions" />
 
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.Abstractions --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.Abstractions, 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.Abstractions@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.Abstractions&version=8.0.447
 
Install as a Cake Addin
#tool nuget:?package=Reo.Core.AutoHistory.Abstractions&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.Abstractions

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

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

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

  • Логирование изменений сущностей (Insert, Update, Delete).
  • Поддержка аудита для вложенных коллекций.
  • Интерфейсы для реализации аудит-свойств и внешних идентификаторов.

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

1. IAuditBase

Интерфейс, определяющий базовые аудит-свойства для сущностей (например, CreatedBy, ModifiedBy, Timestamp).

2. IAuditExternalBase

Интерфейс для сущностей, требующих указания внешнего идентификатора (ExternalId) для аудита.

3. IInnerCollectionService

Сервис для обработки вложенных коллекций в сущностях, позволяющий отслеживать изменения в элементах коллекций.

4. IAuditCompare

Интерфейс для сравнения сущностей, чтобы определить, какие поля изменились (используется в UpdateAsync).


Требования

  • .NET: Совместим с .NET Standard 2.0 и выше.
  • Зависимости:
    • System.Threading.Tasks (для асинхронных операций).
    • Audit.NET (если используется реализация аудита, но не требуется для абстракций).

Установка

NuGet Package Manager

Install-Package Reo.Core.AutoHistory.Abstractions

.NET CLI

dotnet add package Reo.Core.AutoHistory.Abstractions

Настройка

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

public void ConfigureServices(IServiceCollection services)
{
 services.AddAutoHistoryServices(); // Пример регистрации (реализация зависит от конкретного пакета)
}

Примечание: Для использования абстракций требуется реализация (например, Reo.Core.AutoHistory.Implementations), которая должна быть добавлена отдельно.


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

Пример 1: Реализация IAuditBase в модели

public class MyEntity : IAuditBase
{
 public Guid Id { get; set; }
 public string Name { get; set; }
 public Guid CreatedBy { get; set; }
 public Guid ModifiedBy { get; set; }
 public DateTime CreatedAt { get; set; }
 public DateTime ModifiedAt { get; set; }
}

Пример 2: Использование IInnerCollectionService

public class MyService
{
 private readonly IInnerCollectionService _collectionService;

 public MyService(IInnerCollectionService collectionService)
 {
 _collectionService = collectionService;
 }

 public void TrackCollectionChanges(List<MyEntity> entities)
 {
 var changes = _collectionService.GetCollectionChanges(entities);
 // Обработка изменений (добавлено, удалено, изменено)
 }
}

Пример 3: Логирование изменений через IAuditCompare

public class AuditLogger
{
 private readonly IAuditCompare _auditCompare;

 public AuditLogger(IAuditCompare auditCompare)
 {
 _auditCompare = auditCompare;
 }

 public void LogChanges(MyEntity oldEntity, MyEntity newEntity)
 {
 var differences = _auditCompare.GetDifferences(oldEntity, newEntity);
 foreach (var diff in differences)
 {
 Console.WriteLine($"Изменено поле: {diff.PropertyName}, Старое значение: {diff.OldValue}, Новое значение: {diff.NewValue}");
 }
 }
}

Лицензия

Этот пакет распространяется под лицензией MIT License. См. файл 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 (1)

Showing the top 1 NuGet packages that depend on Reo.Core.AutoHistory.Abstractions:

Package Downloads
Reo.Core.AutoHistory

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
8.0.447 383 7/16/2025
8.0.446 329 7/16/2025
8.0.445 352 7/16/2025
8.0.444 342 7/16/2025
8.0.443 313 7/16/2025
8.0.442 352 7/16/2025
8.0.439 291 7/15/2025
8.0.438 333 7/15/2025
8.0.437 312 7/15/2025
8.0.436 322 7/15/2025
6.0.447 330 7/16/2025
6.0.446 324 7/16/2025
6.0.445 325 7/16/2025
6.0.444 332 7/16/2025
6.0.443 313 7/16/2025
6.0.442 322 7/16/2025
6.0.439 298 7/15/2025
6.0.438 339 7/15/2025
6.0.437 329 7/15/2025
6.0.436 335 7/15/2025
Loading failed