Reo.Core.DataModels
10.0.6
See the version list below for details.
dotnet add package Reo.Core.DataModels --version 10.0.6
NuGet\Install-Package Reo.Core.DataModels -Version 10.0.6
<PackageReference Include="Reo.Core.DataModels" Version="10.0.6" />
<PackageVersion Include="Reo.Core.DataModels" Version="10.0.6" />
<PackageReference Include="Reo.Core.DataModels" />
paket add Reo.Core.DataModels --version 10.0.6
#r "nuget: Reo.Core.DataModels, 10.0.6"
#:package Reo.Core.DataModels@10.0.6
#addin nuget:?package=Reo.Core.DataModels&version=10.0.6
#tool nuget:?package=Reo.Core.DataModels&version=10.0.6
Reo.Core.DataModels
Описание пакета
Reo.Core.DataModels — это библиотека, предназначенная для упрощения работы с запросами и ответами в приложениях на C#.
Пакет предоставляет набор универсальных интерфейсов и классов для реализации пагинации, фильтрации, сортировки и
агрегации данных. Он позволяет разработчикам быстро создавать структуры данных, которые можно использовать в
REST-сервисах, API и других сценариях, где требуется обработка запросов и ответов.
Основные функции:
- Поддержка пагинации (Take/Skip).
- Реализация фильтрации данных через интерфейсы
IFilteredRequest<TFilter>. - Сортировка данных с использованием
ISortedRequest. - Агрегация данных через
IAggregatedRequest. - Гибкая интеграция с другими библиотеками (например, FluentValidation для валидации).
Основные компоненты
1. ISortedRequest
Интерфейс для работы с параметрами сортировки. Содержит коллекцию полей OrderByField, которые определяют порядок
сортировки данных.
2. IFilteredRequest<TFilter>
Интерфейс для фильтрации данных. Использует модель TFilter, которая может быть настроена под конкретные требования
приложения.
3. IPaginatedRequest
Интерфейс для пагинации. Определяет параметры Take (количество элементов на странице) и Skip (смещение для пропуска
элементов).
4. IAggregatedRequest
Интерфейс для агрегации данных. Содержит список полей AggregationFields, которые используются для вычисления итоговых
значений.
5. PaginatedRequest<TFilter>
Класс, реализующий IPaginatedRequest и IFilteredRequest<TFilter>. Объединяет параметры пагинации и фильтрации в
одном объекте.
6. NonPaginatedRequest<TFilter>
Класс для запросов без пагинации. Реализует только IFilteredRequest<TFilter>.
7. CheckResult (в ResponseModels)
Модель ответа, используемая для передачи результатов проверки или операций. Содержит флаг успеха и сообщение.
Требования
Совместимость с .NET
- .NET Standard 2.1
- .NET 8.0
Зависимости
- Microsoft.CSharp
- NEST (для работы с Elasticsearch)
- Newtonsoft.Json
- System.ComponentModel.Annotations
- System.Collections.Immutable
- FluentValidation
Установка
NuGet Package Manager
Install-Package Reo.Core.DataModels
.NET CLI
dotnet add package Reo.Core.DataModels
Настройка
Регистрация в DI-контейнере (ASP.NET Core)
Если пакет используется в приложении ASP.NET Core, зарегистрируйте модели и сервисы в Startup.cs или Program.cs:
services.AddDataModels(); // Если требуется, добавьте кастомные настройки
Примечание: В данном пакете не требуется специфичная конфигурация. Все модели и интерфейсы готовы к использованию без дополнительных настроек.
Использование
Пример 1: Пагинация и фильтрация
var request = new PaginatedRequest<MyFilter>
{
Filter = new MyFilter { Name = "Test" },
Take = 10,
Skip = 0
};
Пример 2: Сортировка
var sortedRequest = new SortedRequest
{
OrderByFields = new List<OrderByField>
{
new OrderByField { Field = "Name", Direction = "asc" }
}
};
Пример 3: Агрегация
var aggregatedRequest = new AggregatedRequest
{
AggregationFields = new List<string> { "TotalSales", "Count" }
};
Пример 4: Использование CheckResult в ответе
public CheckResult ValidateData()
{
if (data.IsValid)
return new CheckResult { Success = true, Message = "Данные валидны" };
else
return new CheckResult { Success = false, Message = "Ошибка валидации" };
}
Лицензия
Данный пакет распространяется под лицензией MIT.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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. |
-
net10.0
- FluentValidation (>= 12.1.1)
- JetBrains.Annotations (>= 2025.2.4)
- NEST (>= 7.17.5)
- Newtonsoft.Json (>= 13.0.4)
- Reo.Core.Database.Abstractions (>= 10.0.6)
- stbychkov.AutoLoggerMessage (>= 1.0.15)
- System.ComponentModel.Annotations (>= 5.0.0)
NuGet packages (24)
Showing the top 5 NuGet packages that depend on Reo.Core.DataModels:
| Package | Downloads |
|---|---|
|
Reo.Core.NoSql
Package Description |
|
|
Reo.Core.DistributedCache.Abstractions
Package Description |
|
|
Reo.Core.AutoHistory
Package Description |
|
|
Reo.Core.AutoHistory.Abstractions
Package Description |
|
|
Reo.Core.Database
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 10.0.30 | 0 | 2/12/2026 |
| 10.0.29 | 0 | 2/12/2026 |
| 10.0.28 | 35 | 2/11/2026 |
| 10.0.27 | 52 | 2/11/2026 |
| 10.0.26 | 131 | 2/9/2026 |
| 10.0.25 | 142 | 2/9/2026 |
| 10.0.24 | 157 | 2/9/2026 |
| 10.0.23 | 143 | 2/9/2026 |
| 10.0.22 | 147 | 2/9/2026 |
| 10.0.21 | 156 | 2/9/2026 |
| 10.0.20 | 151 | 2/9/2026 |
| 10.0.15 | 189 | 2/6/2026 |
| 10.0.14 | 186 | 2/6/2026 |
| 10.0.13 | 470 | 2/4/2026 |
| 10.0.12 | 214 | 2/3/2026 |
| 10.0.11 | 229 | 2/2/2026 |
| 10.0.10 | 225 | 1/29/2026 |
| 10.0.9 | 204 | 1/29/2026 |
| 10.0.8 | 216 | 1/27/2026 |
| 10.0.6 | 225 | 1/26/2026 |