Package Description
$ dotnet add package Reo.Core.DataModelsReo.Core.DataModels — это библиотека, предназначенная для упрощения работы с запросами и ответами в приложениях на C#.
Пакет предоставляет набор универсальных интерфейсов и классов для реализации пагинации, фильтрации, сортировки и
агрегации данных. Он позволяет разработчикам быстро создавать структуры данных, которые можно использовать в
REST-сервисах, API и других сценариях, где требуется обработка запросов и ответов.
IFilteredRequest<TFilter>.ISortedRequest.IAggregatedRequest.ISortedRequestИнтерфейс для работы с параметрами сортировки. Содержит коллекцию полей OrderByField, которые определяют порядок
сортировки данных.
IFilteredRequest<TFilter>Интерфейс для фильтрации данных. Использует модель TFilter, которая может быть настроена под конкретные требования
приложения.
IPaginatedRequestИнтерфейс для пагинации. Определяет параметры Take (количество элементов на странице) и Skip (смещение для пропуска
элементов).
IAggregatedRequestИнтерфейс для агрегации данных. Содержит список полей AggregationFields, которые используются для вычисления итоговых
значений.
PaginatedRequest<TFilter>Класс, реализующий IPaginatedRequest и IFilteredRequest<TFilter>. Объединяет параметры пагинации и фильтрации в
одном объекте.
NonPaginatedRequest<TFilter>Класс для запросов без пагинации. Реализует только IFilteredRequest<TFilter>.
CheckResult (в ResponseModels)Модель ответа, используемая для передачи результатов проверки или операций. Содержит флаг успеха и сообщение.
Install-Package Reo.Core.DataModelsdotnet add package Reo.Core.DataModelsЕсли пакет используется в приложении ASP.NET Core, зарегистрируйте модели и сервисы в Startup.cs или Program.cs:
services.AddDataModels(); // Если требуется, добавьте кастомные настройкиПримечание: В данном пакете не требуется специфичная конфигурация. Все модели и интерфейсы готовы к использованию без дополнительных настроек.
var request = new PaginatedRequest<MyFilter>
{
Filter = new MyFilter { Name = "Test" },
Take = 10,
Skip = 0
};var sortedRequest = new SortedRequest
{
OrderByFields = new List<OrderByField>
{
new OrderByField { Field = "Name", Direction = "asc" }
}
};var aggregatedRequest = new AggregatedRequest
{
AggregationFields = new List<string> { "TotalSales", "Count" }
};CheckResult в ответеpublic CheckResult ValidateData()
{
if (data.IsValid)
return new CheckResult { Success = true, Message = "Данные валидны" };
else
return new CheckResult { Success = false, Message = "Ошибка валидации" };
}Reo.Core.DataModels распространяется под лицензией MIT License. См. файл LICENSE для получения подробной информации.