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
<PackageReference Include="Reo.Core.AutoHistory.Abstractions" Version="8.0.447" />
<PackageVersion Include="Reo.Core.AutoHistory.Abstractions" Version="8.0.447" />
<PackageReference Include="Reo.Core.AutoHistory.Abstractions" />
paket add Reo.Core.AutoHistory.Abstractions --version 8.0.447
#r "nuget: Reo.Core.AutoHistory.Abstractions, 8.0.447"
#:package Reo.Core.AutoHistory.Abstractions@8.0.447
#addin nuget:?package=Reo.Core.AutoHistory.Abstractions&version=8.0.447
#tool nuget:?package=Reo.Core.AutoHistory.Abstractions&version=8.0.447
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 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. |
-
net8.0
- Audit.NET (>= 25.0.7)
- FluentValidation (>= 11.11.0)
- JetBrains.Annotations (>= 2024.3.0)
- Microsoft.CSharp (>= 4.7.0)
- NEST (>= 7.17.5)
- Newtonsoft.Json (>= 13.0.3)
- Reo.Core.DataModels (>= 8.0.447)
- stbychkov.AutoLoggerMessage (>= 1.0.11)
- System.Collections.Immutable (>= 9.0.7)
- System.ComponentModel.Annotations (>= 5.0.0)
- System.IO.Pipelines (>= 9.0.7)
- System.Text.Encodings.Web (>= 9.0.7)
- System.Text.Json (>= 9.0.7)
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 |