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
                    
#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

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 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 was computed.  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.

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 320 7/16/2025
8.0.446 285 7/16/2025
8.0.445 303 7/16/2025
8.0.444 288 7/16/2025
8.0.443 270 7/16/2025
8.0.442 297 7/16/2025
8.0.439 244 7/15/2025
8.0.438 284 7/15/2025
8.0.437 267 7/15/2025
8.0.436 273 7/15/2025
6.0.447 285 7/16/2025
6.0.446 279 7/16/2025
6.0.445 280 7/16/2025
6.0.444 287 7/16/2025
6.0.443 268 7/16/2025
6.0.442 272 7/16/2025
6.0.439 255 7/15/2025
6.0.438 293 7/15/2025
6.0.437 285 7/15/2025
6.0.436 294 7/15/2025
Loading failed