Reo.Core.BaseDomainModels.MediatorGenerator
8.0.516
See the version list below for details.
dotnet add package Reo.Core.BaseDomainModels.MediatorGenerator --version 8.0.516
NuGet\Install-Package Reo.Core.BaseDomainModels.MediatorGenerator -Version 8.0.516
<PackageReference Include="Reo.Core.BaseDomainModels.MediatorGenerator" Version="8.0.516" />
<PackageVersion Include="Reo.Core.BaseDomainModels.MediatorGenerator" Version="8.0.516" />
<PackageReference Include="Reo.Core.BaseDomainModels.MediatorGenerator" />
paket add Reo.Core.BaseDomainModels.MediatorGenerator --version 8.0.516
#r "nuget: Reo.Core.BaseDomainModels.MediatorGenerator, 8.0.516"
#:package Reo.Core.BaseDomainModels.MediatorGenerator@8.0.516
#addin nuget:?package=Reo.Core.BaseDomainModels.MediatorGenerator&version=8.0.516
#tool nuget:?package=Reo.Core.BaseDomainModels.MediatorGenerator&version=8.0.516
Reo.Core.BaseDomainModels.MediatorGenerator
Описание пакета
Пакет Reo.Core.BaseDomainModels.MediatorGenerator
предоставляет базовые классы и интерфейсы для реализации доменной
логики в приложениях, использующих подход Domain-Driven Design (DDD) с интеграцией MediatR. Он решает задачи
структурирования доменных объектов, управления командами и событиями, а также обеспечивает стандартный интерфейс для
работы с репозиториями. Основные функции:
- Поддержка агрегатов домена с возможностью обработки команд и событий.
- Интеграция с Mediator.Abstractions для декларативного управления бизнес-логикой.
- Обобщённые интерфейсы для репозиториев (чтение/запись) с поддержкой типизированных идентификаторов.
Основные компоненты
Классы
ReoAggregateRoot<TId>
Базовый класс для агрегатов домена. Реализует логику добавления команд, событий и обработки изменений состояния.ReoReferenceModel
Абстрактный класс для моделей справочников, наследуется отReoAggregateRoot<int>
. Предоставляет базовое свойствоName
.
Интерфейсы
IReoDomainCommand
Обобщённый интерфейс для команд, реализующихIRequest
из Mediator.Abstractions. Используется для передачи инструкций в систему.IReoDomainCommandWithResult
Интерфейс для команд, возвращающих результат типаbool
. РеализуетIRequest<bool>
из Mediator.Abstractions.IReoDomainEvent
Интерфейс для событий, используемых для реакции на изменения состояния агрегатов.IReoDomainReadOnlyBaseRepository<TAggregateRoot, TId>
Обобщённый интерфейс для репозиториев чтения. Предоставляет методGetAsync
для получения агрегата по идентификатору.IReoDomainWriteOnlyBaseRepository<TAggregateRoot, TId>
Обобщённый интерфейс для репозиториев записи. Предоставляет методSaveAsync
для сохранения агрегата.
Службы
IReoDomainCommandsExecutor
Интерфейс для исполнения команд, включает методыExecuteDomainCommandsAsync
иExecuteDomainCommandsWithResultsAsync
.IReoDomainEventsExecutor
Интерфейс для исполнения событий, включает методыExecuteDomainEventsAsync
иSequentialExecuteDomainEventsAsync
.
Требования
- .NET версии: .NET 8.0 и выше.
- Зависимости:
Установка
NuGet Package Manager
Install-Package Reo.Core.BaseDomainModels.MediatorGenerator
.NET CLI
dotnet add package Reo.Core.BaseDomainModels.MediatorGenerator
Настройка
Регистрация в DI-контейнере (ASP.NET Core)
public void ConfigureServices(IServiceCollection services)
{
services.AddMediator();
}
Конфигурационные параметры
N/A (пакет не требует дополнительной настройки).
Использование
Пример 1: Создание агрегата
public class MyAggregateRoot : ReoAggregateRoot<int>
{
public string Data { get; private set; }
public void UpdateData(string newData)
{
if (Data == newData) return;
Data = newData;
AddDomainEvent(new DataUpdatedEvent(newData));
}
}
Пример 2: Обработка команды
public class UpdateDataCommandHandler : IRequestHandler<UpdateDataCommand, bool>
{
private readonly IReoDomainWriteOnlyRepository<MyAggregateRoot> _repository;
public UpdateDataCommandHandler(IReoDomainWriteOnlyRepository<MyAggregateRoot> repository)
{
_repository = repository;
}
public async Task<bool> Handle(UpdateDataCommand request, CancellationToken cancellationToken)
{
var aggregate = await _repository.GetAsync(request.Id, cancellationToken);
aggregate.UpdateData(request.NewData);
await _repository.SaveAsync(aggregate, cancellationToken);
return true;
}
}
Пример 3: Репозиторий
public class MyRepository : IReoDomainReadOnlyRepository<MyAggregateRoot>, IReoDomainWriteOnlyRepository<MyAggregateRoot>
{
public async Task<MyAggregateRoot> GetAsync(int id, CancellationToken token)
{
// Реализация получения данных из источника
return new MyAggregateRoot(id, "Initial data");
}
public async Task<int> SaveAsync(MyAggregateRoot domain, CancellationToken token)
{
// Реализация сохранения данных
return domain.Id;
}
}
Лицензия
Этот пакет распространяется под лицензией MIT 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
- AutoMapper (>= 11.0.1 && < 15.0.0)
- FluentValidation (>= 11.11.0)
- FluentValidation.AspNetCore (>= 11.3.1)
- Flurl (>= 4.0.0)
- Flurl.Http (>= 4.0.2)
- JetBrains.Annotations (>= 2025.2.0)
- Mediator.Abstractions (>= 3.0.1)
- Microsoft.AspNetCore.Mvc.NewtonsoftJson (>= 8.0.19)
- Microsoft.Bcl.AsyncInterfaces (>= 9.0.8)
- Microsoft.CSharp (>= 4.7.0)
- Microsoft.Extensions.Configuration (>= 9.0.8)
- Microsoft.Extensions.Configuration.Abstractions (>= 9.0.8)
- Microsoft.Extensions.Configuration.Binder (>= 9.0.8)
- Microsoft.Extensions.DependencyInjection (>= 9.0.8)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.8)
- Microsoft.Extensions.Http.Polly (>= 9.0.8)
- Microsoft.Extensions.Logging (>= 9.0.8)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.8)
- Microsoft.Extensions.Options (>= 9.0.8)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 9.0.8)
- NEST (>= 7.17.5)
- Newtonsoft.Json (>= 13.0.3)
- Polly (>= 8.5.0)
- RedLock.net (>= 2.3.2)
- Reo.Core.BaseDomainModels (>= 8.0.516)
- stbychkov.AutoLoggerMessage (>= 1.0.13)
- System.Collections.Immutable (>= 9.0.8)
- System.ComponentModel.Annotations (>= 5.0.0)
- System.Configuration.ConfigurationManager (>= 9.0.8)
- System.IO.Abstractions (>= 22.0.15)
- System.IO.Pipelines (>= 9.0.8)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Reo.Core.BaseDomainModels.MediatorGenerator:
Package | Downloads |
---|---|
Reo.Core.Application.Abstractions.MediatorGenerator
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
8.0.517 | 35 | 8/25/2025 |
8.0.516 | 22 | 8/25/2025 |
8.0.515 | 19 | 8/24/2025 |
8.0.514 | 92 | 8/21/2025 |
8.0.513 | 96 | 8/20/2025 |
8.0.512 | 90 | 8/20/2025 |
8.0.511 | 89 | 8/20/2025 |
8.0.510 | 116 | 8/18/2025 |
8.0.509 | 119 | 8/18/2025 |
8.0.508 | 132 | 8/13/2025 |
8.0.506 | 129 | 8/13/2025 |
8.0.505 | 126 | 8/13/2025 |
8.0.504 | 131 | 8/13/2025 |
8.0.503 | 133 | 8/13/2025 |
8.0.502 | 130 | 8/12/2025 |
8.0.501 | 130 | 8/12/2025 |
8.0.500 | 130 | 8/12/2025 |
8.0.499 | 132 | 8/12/2025 |
8.0.498 | 124 | 8/11/2025 |
8.0.497 | 160 | 8/8/2025 |
8.0.496 | 169 | 8/8/2025 |
8.0.495 | 171 | 8/8/2025 |
8.0.494 | 193 | 8/8/2025 |
8.0.493 | 203 | 8/7/2025 |
8.0.492 | 203 | 8/7/2025 |
8.0.491 | 203 | 8/7/2025 |
8.0.490 | 189 | 8/7/2025 |
8.0.489 | 201 | 8/5/2025 |
8.0.488 | 202 | 8/5/2025 |
8.0.487 | 65 | 8/1/2025 |
8.0.486 | 92 | 7/30/2025 |
8.0.485 | 100 | 7/28/2025 |
8.0.484 | 90 | 7/28/2025 |
8.0.483 | 90 | 7/28/2025 |
8.0.482 | 92 | 7/28/2025 |
8.0.481 | 92 | 7/28/2025 |
8.0.480 | 348 | 7/25/2025 |
8.0.479 | 375 | 7/25/2025 |
8.0.478 | 373 | 7/25/2025 |
8.0.477 | 387 | 7/25/2025 |
8.0.476 | 387 | 7/25/2025 |
8.0.475 | 440 | 7/24/2025 |
8.0.474 | 438 | 7/24/2025 |
8.0.473 | 487 | 7/23/2025 |
8.0.472 | 490 | 7/23/2025 |
8.0.470 | 486 | 7/23/2025 |
8.0.469 | 489 | 7/23/2025 |
8.0.468 | 487 | 7/23/2025 |
8.0.467 | 485 | 7/23/2025 |
8.0.466 | 491 | 7/23/2025 |
8.0.465 | 486 | 7/23/2025 |
8.0.464 | 482 | 7/23/2025 |
8.0.463 | 485 | 7/23/2025 |
8.0.462 | 484 | 7/22/2025 |
8.0.461 | 483 | 7/22/2025 |
8.0.460 | 366 | 7/21/2025 |
8.0.459 | 51 | 7/18/2025 |
8.0.458 | 79 | 7/18/2025 |
8.0.457 | 112 | 7/17/2025 |
8.0.456 | 114 | 7/17/2025 |
8.0.455 | 112 | 7/17/2025 |
8.0.454 | 110 | 7/17/2025 |
8.0.453 | 110 | 7/17/2025 |
8.0.452 | 113 | 7/17/2025 |
8.0.451 | 111 | 7/17/2025 |
8.0.450 | 107 | 7/17/2025 |
8.0.449 | 113 | 7/17/2025 |
8.0.448 | 115 | 7/17/2025 |
8.0.447 | 113 | 7/16/2025 |
8.0.446 | 116 | 7/16/2025 |
8.0.445 | 117 | 7/16/2025 |
8.0.444 | 114 | 7/16/2025 |
8.0.443 | 110 | 7/16/2025 |
8.0.442 | 113 | 7/16/2025 |
8.0.439 | 116 | 7/15/2025 |
8.0.438 | 115 | 7/15/2025 |
8.0.437 | 115 | 7/15/2025 |
8.0.436 | 112 | 7/15/2025 |
8.0.435 | 115 | 7/15/2025 |
8.0.433 | 117 | 7/14/2025 |
8.0.432 | 118 | 7/14/2025 |
8.0.431 | 92 | 7/11/2025 |
8.0.430 | 104 | 7/11/2025 |
8.0.429 | 117 | 7/10/2025 |
8.0.428 | 115 | 7/10/2025 |
8.0.427 | 123 | 7/9/2025 |
8.0.426 | 118 | 7/8/2025 |
8.0.425 | 119 | 7/8/2025 |
8.0.424 | 119 | 7/8/2025 |
8.0.423 | 116 | 7/8/2025 |
8.0.422 | 111 | 7/8/2025 |
8.0.421 | 117 | 7/8/2025 |
8.0.420 | 115 | 7/7/2025 |
8.0.419 | 116 | 7/7/2025 |
8.0.418 | 115 | 7/7/2025 |
8.0.417 | 118 | 7/7/2025 |
8.0.416 | 116 | 7/6/2025 |
8.0.415 | 78 | 7/4/2025 |
8.0.414 | 88 | 7/4/2025 |
8.0.411 | 124 | 7/3/2025 |
8.0.410 | 119 | 7/3/2025 |
8.0.409 | 116 | 7/3/2025 |
8.0.408 | 117 | 7/1/2025 |
8.0.407 | 116 | 7/1/2025 |
8.0.406 | 115 | 7/1/2025 |
8.0.405 | 124 | 7/1/2025 |
8.0.404 | 129 | 6/26/2025 |
8.0.403 | 116 | 6/26/2025 |
8.0.401 | 131 | 6/24/2025 |
8.0.400 | 119 | 6/24/2025 |
8.0.399 | 120 | 6/23/2025 |
8.0.398 | 120 | 6/23/2025 |
8.0.397 | 78 | 6/20/2025 |
8.0.396 | 122 | 6/19/2025 |
8.0.395 | 124 | 6/18/2025 |
8.0.394 | 125 | 6/18/2025 |
8.0.392 | 126 | 6/18/2025 |
8.0.390 | 144 | 6/18/2025 |
6.0.517 | 31 | 8/25/2025 |
6.0.516 | 25 | 8/25/2025 |
6.0.515 | 17 | 8/24/2025 |
6.0.514 | 86 | 8/21/2025 |
6.0.513 | 86 | 8/20/2025 |
6.0.512 | 89 | 8/20/2025 |
6.0.511 | 89 | 8/20/2025 |
6.0.510 | 113 | 8/18/2025 |
6.0.509 | 118 | 8/18/2025 |
6.0.508 | 130 | 8/13/2025 |
6.0.506 | 128 | 8/13/2025 |
6.0.505 | 126 | 8/13/2025 |
6.0.504 | 134 | 8/13/2025 |
6.0.503 | 133 | 8/13/2025 |
6.0.502 | 126 | 8/12/2025 |
6.0.501 | 127 | 8/12/2025 |
6.0.500 | 127 | 8/12/2025 |
6.0.499 | 135 | 8/12/2025 |
6.0.498 | 127 | 8/11/2025 |
6.0.497 | 160 | 8/8/2025 |
6.0.496 | 169 | 8/8/2025 |
6.0.495 | 172 | 8/8/2025 |
6.0.494 | 192 | 8/8/2025 |
6.0.493 | 200 | 8/7/2025 |
6.0.492 | 212 | 8/7/2025 |
6.0.491 | 199 | 8/7/2025 |
6.0.490 | 189 | 8/7/2025 |
6.0.489 | 194 | 8/5/2025 |
6.0.488 | 195 | 8/5/2025 |
6.0.487 | 61 | 8/1/2025 |
6.0.486 | 94 | 7/30/2025 |
6.0.485 | 89 | 7/28/2025 |
6.0.484 | 88 | 7/28/2025 |
6.0.483 | 91 | 7/28/2025 |
6.0.482 | 90 | 7/28/2025 |
6.0.481 | 91 | 7/28/2025 |
6.0.480 | 348 | 7/25/2025 |
6.0.479 | 375 | 7/25/2025 |
6.0.478 | 371 | 7/25/2025 |
6.0.477 | 385 | 7/25/2025 |
6.0.476 | 388 | 7/25/2025 |
6.0.475 | 438 | 7/24/2025 |
6.0.474 | 440 | 7/24/2025 |
6.0.473 | 486 | 7/23/2025 |
6.0.472 | 484 | 7/23/2025 |
6.0.470 | 485 | 7/23/2025 |
6.0.469 | 487 | 7/23/2025 |
6.0.468 | 484 | 7/23/2025 |
6.0.467 | 485 | 7/23/2025 |
6.0.466 | 488 | 7/23/2025 |
6.0.465 | 484 | 7/23/2025 |
6.0.464 | 483 | 7/23/2025 |
6.0.463 | 484 | 7/23/2025 |
6.0.462 | 479 | 7/22/2025 |
6.0.461 | 478 | 7/22/2025 |
6.0.460 | 365 | 7/21/2025 |
6.0.459 | 46 | 7/18/2025 |
6.0.458 | 75 | 7/18/2025 |
6.0.457 | 110 | 7/17/2025 |
6.0.456 | 111 | 7/17/2025 |
6.0.455 | 112 | 7/17/2025 |