AuditKit 8.6.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package AuditKit --version 8.6.0
                    
NuGet\Install-Package AuditKit -Version 8.6.0
                    
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="AuditKit" Version="8.6.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="AuditKit" Version="8.6.0" />
                    
Directory.Packages.props
<PackageReference Include="AuditKit" />
                    
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 AuditKit --version 8.6.0
                    
#r "nuget: AuditKit, 8.6.0"
                    
#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 AuditKit@8.6.0
                    
#: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=AuditKit&version=8.6.0
                    
Install as a Cake Addin
#tool nuget:?package=AuditKit&version=8.6.0
                    
Install as a Cake Tool

AuditKit

Библиотека для ведения журнала аудита действий пользователей через Entity Framework Core. Поддерживает запись, фильтрацию по действию, сущности, пользователю, дате и диапазону дат, пагинацию и экспорт в DataTable.

Установка

dotnet add package AuditKit

Или через NuGet Package Manager:

Install-Package AuditKit

Пространство имён

using AuditKit;

Настройка

Добавьте DbSet<AuditLog> в ваш DbContext:

using AuditKit;

public class MyDbContext : DbContext
{
    public DbSet<AuditLog> AuditLogs { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder options)
        => options.UseSqlServer("...");
}

После добавления выполните миграцию:

dotnet ef migrations add AddAuditLog
dotnet ef database update

Модель данных

AuditLog

Модель записи аудита.

public class AuditLog
{
    [Key]
    public int Id { get; set; }
    public DateTime Timestamp { get; set; }
    public string UserName { get; set; }
    public string Action { get; set; }
    public string EntityName { get; set; }
    public string Details { get; set; }
    public string IpAddress { get; set; }
}
Свойство Тип Описание
Id int Идентификатор записи (первичный ключ)
Timestamp DateTime Дата и время действия
UserName string Имя пользователя
Action string Тип действия (Создание, Изменение, Удаление, Просмотр, Экспорт, Вход, Другое)
EntityName string Имя сущности
Details string Подробности действия
IpAddress string IP-адрес пользователя

Полный справочник API

Все методы находятся в статическом классе Audit.

Audit.Log

Записывает произвольное действие в журнал аудита.

void Log(DbContext db, string details, string userName, string action = "Другое", string entityName = "", string ipAddress = "")
Параметр Тип Описание
db DbContext Контекст базы данных
details string Описание действия
userName string Имя пользователя
action string Тип действия (по умолчанию "Другое")
entityName string Имя сущности (по умолчанию пустая строка)
ipAddress string IP-адрес (по умолчанию пустая строка)

Audit.LogCreate

Записывает создание сущности (action = "Создание").

void LogCreate(DbContext db, string entityName, string details, string userName, string ipAddress = "")
Параметр Тип Описание
db DbContext Контекст базы данных
entityName string Имя сущности
details string Подробности
userName string Имя пользователя
ipAddress string IP-адрес (необязательный)

Audit.LogEdit

Записывает изменение сущности (action = "Изменение").

void LogEdit(DbContext db, string entityName, string details, string userName, string ipAddress = "")
Параметр Тип Описание
db DbContext Контекст базы данных
entityName string Имя сущности
details string Подробности
userName string Имя пользователя
ipAddress string IP-адрес (необязательный)

Audit.LogDelete

Записывает удаление сущности (action = "Удаление").

void LogDelete(DbContext db, string entityName, string details, string userName, string ipAddress = "")
Параметр Тип Описание
db DbContext Контекст базы данных
entityName string Имя сущности
details string Подробности
userName string Имя пользователя
ipAddress string IP-адрес (необязательный)

Audit.GetAll

Возвращает все записи аудита, отсортированные по дате (от новых к старым).

List<AuditLog> GetAll(DbContext db)
Параметр Тип Описание
db DbContext Контекст базы данных

Возвращает: List<AuditLog> — все записи аудита.


Audit.GetByDate

Возвращает записи аудита за указанную дату.

List<AuditLog> GetByDate(DbContext db, DateTime date)
Параметр Тип Описание
db DbContext Контекст базы данных
date DateTime Дата для фильтрации

Возвращает: List<AuditLog> — записи за указанную дату.


Audit.GetByUser

Возвращает записи аудита для указанного пользователя.

List<AuditLog> GetByUser(DbContext db, string userName)
Параметр Тип Описание
db DbContext Контекст базы данных
userName string Имя пользователя

Возвращает: List<AuditLog> — записи указанного пользователя.


Audit.GetByAction

Возвращает записи аудита для указанного типа действия.

List<AuditLog> GetByAction(DbContext db, string action)
Параметр Тип Описание
db DbContext Контекст базы данных
action string Тип действия (например, "Создание", "Удаление", "Изменение", "Экспорт")

Возвращает: List<AuditLog> — записи с указанным типом действия.


Audit.GetByEntity

Возвращает записи аудита для указанной сущности.

List<AuditLog> GetByEntity(DbContext db, string entityName)
Параметр Тип Описание
db DbContext Контекст базы данных
entityName string Имя сущности

Возвращает: List<AuditLog> — записи для указанной сущности.


Audit.GetPaged

Возвращает записи аудита с пагинацией.

(List<AuditLog> Items, int Total, int Pages) GetPaged(DbContext db, int page = 1, int pageSize = 50)
Параметр Тип Описание
db DbContext Контекст базы данных
page int Номер страницы (по умолчанию 1)
pageSize int Размер страницы (по умолчанию 50)

Возвращает: кортеж из:

  • Items (List<AuditLog>) — записи на текущей странице
  • Total (int) — общее количество записей
  • Pages (int) — общее количество страниц

Audit.GetByDateRange

Возвращает записи аудита за диапазон дат (включительно по обеим границам).

List<AuditLog> GetByDateRange(DbContext db, DateTime from, DateTime to)
Параметр Тип Описание
db DbContext Контекст базы данных
from DateTime Начальная дата
to DateTime Конечная дата

Возвращает: List<AuditLog> — записи за указанный период.


Audit.ToDataTable

Преобразует все записи аудита в DataTable для экспорта. Столбцы: Id, Дата, Пользователь, Действие, Сущность, Подробности, IP.

DataTable ToDataTable(DbContext db)
Параметр Тип Описание
db DbContext Контекст базы данных

Возвращает: DataTable — таблица с записями аудита.


Примеры использования

Пример 1. Логирование CRUD-операций

using AuditKit;

// При добавлении записи
var product = new Product { Name = "Ноутбук Lenovo", Price = 50000 };
db.Products.Add(product);
db.SaveChanges();
Audit.LogCreate(db, "Товар", $"Создан: {product.Name}, цена {product.Price} руб.", "admin");

// При изменении
var oldPrice = product.Price;
product.Price = 45000;
db.SaveChanges();
Audit.LogEdit(db, "Товар", $"Цена изменена: {oldPrice} -> {product.Price}", "admin");

// При удалении
Audit.LogDelete(db, "Товар", $"Удалён ID={product.Id}, {product.Name}", "admin", "192.168.1.100");

// Произвольное действие
Audit.Log(db, "Пользователь вошёл в систему", "admin", "Вход");

Пример 2. Фильтрация, диапазон дат и пагинация

using AuditKit;

// Записи за сегодня
var today = Audit.GetByDate(db, DateTime.Today);

// Записи за последнюю неделю
var weekly = Audit.GetByDateRange(db, DateTime.Today.AddDays(-7), DateTime.Today);

// Только удаления
var deletions = Audit.GetByAction(db, "Удаление");

// Записи для конкретной сущности
var productLogs = Audit.GetByEntity(db, "Товар");

// Записи конкретного пользователя
var adminLogs = Audit.GetByUser(db, "admin");

// Пагинация: вторая страница по 20 записей
var (items, total, pages) = Audit.GetPaged(db, page: 2, pageSize: 20);
Console.WriteLine($"Страница 2 из {pages}, всего записей: {total}");

Пример 3. Экспорт аудита в DataTable и отображение

using AuditKit;

// Экспорт всех записей в DataTable
var dt = Audit.ToDataTable(db);
dataGridView.DataSource = dt;

// Можно передать в ExportKit для экспорта в Excel/PDF
Console.WriteLine($"Экспортировано {dt.Rows.Count} записей аудита");

Лицензия

MIT

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 AuditKit:

Package Downloads
ISBuilder

Information System Builder — full toolkit for building .NET 8 WinForms applications with EF Core, SQL Server. Export, CRUD, forms, charts, auth, reports, validation, themes.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
8.6.4 134 4/12/2026
8.6.0 108 4/12/2026