Reo.Core.BaseDomainModels.MediatR 6.0.586

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

Reo.Core.BaseDomainModels.MediatR

Описание пакета

Пакет Reo.Core.BaseDomainModels.MediatR предоставляет набор базовых классов и интерфейсов для построения приложений на основе Domain-Driven Design (DDD) с интеграцией MediatR. Он решает задачи структурирования бизнес-логики, управления доменными событиями и командами, а также обеспечивает удобный способ взаимодействия с репозиториями.

Основные функции:

  • Поддержка доменных моделей (агрегатов) с идентификаторами.
  • Интеграция с MediatR для обработки команд и событий.
  • Абстракции для репозиториев (чтение и запись данных).
  • Упрощение реализации паттернов CQRS и Event Sourcing.

Основные компоненты

1. IReoAggregateRoot<TId>

Интерфейс для агрегатов доменной модели. Определяет обязательные свойства и методы, такие как Id и методы для обработки команд и событий.

2. IReoDomainCommand / IReoDomainCommandWithResult

Интерфейсы для команд, которые могут быть обработаны через MediatR. IReoDomainCommand используется для команд без возвращаемого значения, а IReoDomainCommandWithResult — для команд, возвращающих bool.

3. IReoDomainEvent

Интерфейс для доменных событий, реализующих INotification из MediatR. Используется для публикации событий после изменения состояния агрегата.

4. IReoDomainCommandsExecutor / IReoDomainEventsExecutor

Интерфейсы для исполнения команд и событий. Реализуются в базовых классах, таких как ReoAggregateRoot, и обеспечивают интеграцию с MediatR.

5. IReoDomainReadOnlyRepository<TAggregateRoot> / IReoDomainWriteOnlyRepository<TAggregateRoot>

Абстракции для репозиториев. Предоставляют методы для чтения и записи агрегатов в хранилище данных.

6. ReoAggregateRoot<TId>

Базовый класс для реализации агрегатов. Реализует IReoAggregateRoot<TId>, IReoDomainCommandsExecutor, IReoDomainEventsExecutor и предоставляет методы для добавления команд и событий.

Требования

Установка

NuGet Package Manager

Install-Package Reo.Core.BaseDomainModels.MediatR

.NET CLI

dotnet add package Reo.Core.BaseDomainModels.MediatR

Настройка

Регистрация в DI-контейнере (ASP.NET Core)

Добавьте сервисы в ConfigureServices в Startup.cs или Program.cs:

services.AddMediatR(cfg => {
    cfg.RegisterServicesFromAssembly(typeof(Startup).Assembly);
});

Пример регистрации репозиториев

services.AddScoped<IReoDomainReadOnlyRepository<MyAggregateRoot>, MyRepository>();
services.AddScoped<IReoDomainWriteOnlyRepository<MyAggregateRoot>, MyRepository>();

Использование

Пример 1: Создание агрегата и обработка команды

public class CreateOrderCommand : IReoDomainCommand
{
    public Guid CustomerId { get; set; }
    public List<OrderItem> Items { get; set; }
}

public class OrderAggregate : ReoAggregateRoot<Guid>
{
    public Guid CustomerId { get; private set; }
    public List<OrderItem> Items { get; private set; }

    public void Apply(CreateOrderCommand command)
    {
        CustomerId = command.CustomerId;
        Items = command.Items;
        AddDomainEvent(new OrderCreatedEvent { OrderId = Id });
    }
}

public class OrderCreatedEvent : IReoDomainEvent
{
    public Guid OrderId { get; set; }
}

Пример 2: Обработчик команды

public class CreateOrderCommandHandler : IRequestHandler<CreateOrderCommand>
{
    private readonly IReoDomainWriteOnlyRepository<OrderAggregate> _repository;

    public CreateOrderCommandHandler(IReoDomainWriteOnlyRepository<OrderAggregate> repository)
    {
        _repository = repository;
    }

    public async Task Handle(CreateOrderCommand command, CancellationToken token)
    {
        var aggregate = new OrderAggregate();
        aggregate.Apply(command);
        await _repository.SaveAsync(aggregate, token);
    }
}

Пример 3: Обработчик события

public class OrderCreatedEventHandler : INotificationHandler<OrderCreatedEvent>
{
    public async Task Handle(OrderCreatedEvent notification, CancellationToken token)
    {
        // Логика обработки события (например, отправка уведомления).
        Console.WriteLine($"Order created: {notification.OrderId}");
    }
}

Лицензия

Данный пакет распространяется под лицензией 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 Reo.Core.BaseDomainModels.MediatR:

Package Downloads
Reo.Core.Application.Abstractions.MediatR

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
8.0.589 0 9/29/2025
8.0.588 0 9/29/2025
8.0.587 0 9/29/2025
8.0.586 0 9/29/2025
8.0.585 0 9/29/2025
8.0.583 68 9/26/2025
8.0.582 91 9/26/2025
8.0.580 112 9/25/2025
8.0.579 108 9/25/2025
8.0.578 110 9/25/2025
8.0.577 109 9/25/2025
8.0.576 112 9/25/2025
8.0.575 113 9/25/2025
8.0.574 139 9/24/2025
8.0.573 144 9/23/2025
8.0.572 145 9/23/2025
8.0.571 143 9/23/2025
8.0.570 150 9/23/2025
8.0.569 186 9/22/2025
8.0.568 206 9/22/2025
8.0.567 210 9/22/2025
8.0.566 190 9/21/2025
8.0.565 230 9/19/2025
8.0.564 221 9/19/2025
8.0.563 235 9/19/2025
8.0.562 243 9/19/2025
8.0.561 279 9/16/2025
8.0.560 280 9/16/2025
8.0.559 277 9/16/2025
8.0.558 282 9/16/2025
8.0.557 225 9/15/2025
8.0.556 238 9/15/2025
8.0.555 99 9/12/2025
8.0.554 146 9/11/2025
8.0.553 150 9/11/2025
8.0.552 135 9/11/2025
8.0.551 147 9/11/2025
8.0.550 145 9/11/2025
8.0.548 142 9/11/2025
8.0.547 141 9/11/2025
8.0.546 142 9/11/2025
8.0.545 136 9/11/2025
8.0.544 155 9/10/2025
8.0.543 149 9/10/2025
8.0.542 146 9/10/2025
8.0.541 139 9/10/2025
8.0.540 141 9/9/2025
8.0.539 150 9/9/2025
8.0.538 146 9/9/2025
8.0.537 146 9/9/2025
8.0.536 147 9/9/2025
8.0.535 146 9/9/2025
8.0.534 144 9/9/2025
8.0.533 144 9/9/2025
8.0.532 137 9/8/2025
8.0.531 126 9/5/2025
8.0.530 161 9/4/2025
8.0.529 145 9/4/2025
8.0.528 158 9/4/2025
8.0.527 156 9/4/2025
8.0.526 160 9/3/2025
8.0.525 142 9/2/2025
8.0.524 144 9/2/2025
8.0.523 144 9/2/2025
8.0.522 192 8/28/2025
8.0.521 194 8/27/2025
8.0.520 195 8/27/2025
8.0.519 192 8/27/2025
8.0.518 191 8/27/2025
8.0.517 167 8/25/2025
8.0.516 284 8/25/2025
8.0.515 214 8/24/2025
8.0.514 144 8/21/2025
8.0.513 147 8/20/2025
8.0.512 143 8/20/2025
8.0.511 143 8/20/2025
8.0.510 141 8/18/2025
8.0.509 145 8/18/2025
8.0.508 158 8/13/2025
8.0.506 154 8/13/2025
8.0.505 147 8/13/2025
8.0.504 148 8/13/2025
8.0.503 147 8/13/2025
8.0.502 152 8/12/2025
8.0.501 137 8/12/2025
8.0.500 161 8/12/2025
8.0.499 154 8/12/2025
8.0.498 147 8/11/2025
8.0.497 172 8/8/2025
8.0.496 186 8/8/2025
8.0.495 192 8/8/2025
8.0.494 214 8/8/2025
8.0.493 224 8/7/2025
8.0.492 225 8/7/2025
8.0.491 220 8/7/2025
8.0.490 220 8/7/2025
8.0.489 237 8/5/2025
8.0.488 236 8/5/2025
8.0.487 106 8/1/2025
8.0.486 134 7/30/2025
8.0.485 135 7/28/2025
8.0.484 121 7/28/2025
8.0.483 126 7/28/2025
8.0.482 129 7/28/2025
8.0.481 125 7/28/2025
8.0.480 385 7/25/2025
8.0.479 408 7/25/2025
8.0.478 419 7/25/2025
8.0.477 423 7/25/2025
8.0.476 421 7/25/2025
8.0.475 477 7/24/2025
8.0.474 476 7/24/2025
8.0.473 526 7/23/2025
8.0.472 524 7/23/2025
8.0.470 530 7/23/2025
8.0.469 522 7/23/2025
8.0.468 525 7/23/2025
8.0.467 524 7/23/2025
8.0.466 534 7/23/2025
8.0.465 527 7/23/2025
8.0.464 531 7/23/2025
8.0.463 527 7/23/2025
8.0.462 546 7/22/2025
8.0.461 538 7/22/2025
8.0.460 433 7/21/2025
8.0.459 109 7/18/2025
8.0.458 124 7/18/2025
8.0.457 157 7/17/2025
8.0.456 152 7/17/2025
8.0.455 156 7/17/2025
8.0.454 145 7/17/2025
8.0.453 154 7/17/2025
8.0.452 154 7/17/2025
8.0.451 155 7/17/2025
8.0.450 145 7/17/2025
8.0.449 144 7/17/2025
8.0.448 152 7/17/2025
8.0.447 156 7/16/2025
8.0.446 160 7/16/2025
8.0.445 157 7/16/2025
8.0.444 156 7/16/2025
8.0.443 158 7/16/2025
8.0.442 158 7/16/2025
8.0.439 150 7/15/2025
8.0.438 158 7/15/2025
8.0.437 153 7/15/2025
8.0.436 146 7/15/2025
8.0.435 155 7/15/2025
8.0.433 162 7/14/2025
8.0.432 158 7/14/2025
8.0.431 138 7/11/2025
8.0.430 143 7/11/2025
8.0.429 159 7/10/2025
8.0.428 158 7/10/2025
8.0.427 163 7/9/2025
8.0.426 164 7/8/2025
8.0.425 160 7/8/2025
8.0.424 160 7/8/2025
8.0.423 165 7/8/2025
8.0.422 155 7/8/2025
8.0.421 163 7/8/2025
8.0.420 156 7/7/2025
8.0.419 159 7/7/2025
8.0.418 159 7/7/2025
8.0.417 155 7/7/2025
8.0.416 157 7/6/2025
8.0.415 126 7/4/2025
8.0.414 125 7/4/2025
8.0.411 171 7/3/2025
8.0.410 163 7/3/2025
8.0.409 165 7/3/2025
8.0.408 166 7/1/2025
8.0.407 160 7/1/2025
8.0.406 162 7/1/2025
8.0.405 164 7/1/2025
8.0.404 205 6/26/2025
8.0.403 158 6/26/2025
8.0.401 249 6/24/2025
8.0.400 166 6/24/2025
8.0.399 159 6/23/2025
8.0.398 160 6/23/2025
8.0.397 119 6/20/2025
8.0.396 169 6/19/2025
8.0.395 159 6/18/2025
8.0.394 161 6/18/2025
8.0.392 161 6/18/2025
8.0.390 289 6/18/2025
6.0.589 0 9/29/2025
6.0.588 0 9/29/2025
6.0.587 0 9/29/2025
6.0.586 0 9/29/2025
6.0.585 0 9/29/2025
6.0.583 64 9/26/2025
6.0.582 91 9/26/2025
6.0.580 109 9/25/2025
6.0.579 109 9/25/2025
6.0.578 106 9/25/2025
6.0.577 107 9/25/2025
6.0.576 109 9/25/2025
6.0.575 112 9/25/2025
6.0.574 133 9/24/2025
6.0.573 141 9/23/2025
6.0.572 136 9/23/2025
6.0.571 140 9/23/2025
6.0.570 149 9/23/2025
6.0.569 177 9/22/2025
6.0.568 201 9/22/2025
6.0.567 215 9/22/2025
6.0.566 186 9/21/2025
6.0.565 227 9/19/2025
6.0.564 231 9/19/2025
6.0.563 232 9/19/2025
6.0.562 236 9/19/2025
6.0.561 276 9/16/2025
6.0.560 278 9/16/2025
6.0.559 279 9/16/2025
6.0.558 277 9/16/2025
6.0.557 221 9/15/2025
6.0.556 217 9/15/2025
6.0.555 103 9/12/2025
6.0.554 143 9/11/2025
6.0.553 147 9/11/2025
6.0.552 143 9/11/2025
6.0.551 141 9/11/2025
6.0.550 139 9/11/2025
6.0.548 142 9/11/2025
6.0.547 142 9/11/2025
6.0.546 155 9/11/2025
6.0.545 133 9/11/2025
6.0.544 148 9/10/2025
6.0.543 143 9/10/2025
6.0.542 144 9/10/2025
6.0.541 150 9/10/2025
6.0.540 143 9/9/2025
6.0.539 157 9/9/2025
6.0.538 143 9/9/2025
6.0.537 142 9/9/2025
6.0.536 146 9/9/2025
6.0.535 140 9/9/2025
6.0.534 145 9/9/2025
6.0.533 139 9/9/2025
6.0.532 146 9/8/2025
6.0.531 117 9/5/2025
6.0.530 160 9/4/2025
6.0.529 150 9/4/2025
6.0.528 153 9/4/2025
6.0.527 157 9/4/2025
6.0.526 156 9/3/2025
6.0.525 138 9/2/2025
6.0.524 142 9/2/2025
6.0.523 142 9/2/2025
6.0.522 195 8/28/2025
6.0.521 177 8/27/2025
6.0.520 190 8/27/2025
6.0.519 187 8/27/2025
6.0.518 188 8/27/2025
6.0.517 163 8/25/2025
6.0.516 280 8/25/2025
6.0.515 216 8/24/2025
6.0.514 143 8/21/2025
6.0.513 146 8/20/2025
6.0.512 138 8/20/2025
6.0.511 141 8/20/2025
6.0.510 144 8/18/2025
6.0.509 138 8/18/2025
6.0.508 148 8/13/2025
6.0.506 148 8/13/2025
6.0.505 143 8/13/2025
6.0.504 152 8/13/2025
6.0.503 147 8/13/2025
6.0.502 147 8/12/2025
6.0.501 132 8/12/2025
6.0.500 146 8/12/2025
6.0.499 149 8/12/2025
6.0.498 144 8/11/2025
6.0.497 180 8/8/2025
6.0.496 187 8/8/2025
6.0.495 192 8/8/2025
6.0.494 211 8/8/2025
6.0.493 225 8/7/2025
6.0.492 220 8/7/2025
6.0.491 223 8/7/2025
6.0.490 223 8/7/2025
6.0.489 239 8/5/2025
6.0.488 239 8/5/2025
6.0.487 103 8/1/2025
6.0.486 130 7/30/2025
6.0.485 127 7/28/2025
6.0.484 125 7/28/2025
6.0.483 123 7/28/2025
6.0.482 122 7/28/2025
6.0.481 117 7/28/2025
6.0.480 385 7/25/2025
6.0.479 414 7/25/2025
6.0.478 417 7/25/2025
6.0.477 421 7/25/2025
6.0.476 420 7/25/2025
6.0.475 476 7/24/2025
6.0.474 475 7/24/2025
6.0.473 516 7/23/2025
6.0.472 526 7/23/2025
6.0.470 523 7/23/2025
6.0.469 508 7/23/2025
6.0.468 528 7/23/2025
6.0.467 514 7/23/2025
6.0.466 528 7/23/2025
6.0.465 521 7/23/2025
6.0.464 531 7/23/2025
6.0.463 531 7/23/2025
6.0.462 539 7/22/2025
6.0.461 549 7/22/2025
6.0.460 431 7/21/2025
6.0.459 106 7/18/2025
6.0.458 121 7/18/2025
6.0.457 165 7/17/2025
6.0.456 157 7/17/2025
6.0.455 159 7/17/2025
6.0.454 144 7/17/2025
6.0.453 138 7/17/2025
6.0.452 137 7/17/2025
6.0.451 133 7/17/2025
6.0.450 142 7/17/2025
6.0.449 144 7/17/2025
6.0.448 144 7/17/2025
6.0.447 144 7/16/2025
6.0.446 145 7/16/2025
6.0.445 150 7/16/2025
6.0.444 149 7/16/2025
6.0.443 145 7/16/2025
6.0.442 143 7/16/2025
6.0.439 138 7/15/2025
6.0.438 133 7/15/2025
6.0.437 143 7/15/2025
6.0.436 137 7/15/2025
6.0.435 136 7/15/2025
6.0.433 148 7/14/2025
6.0.432 137 7/14/2025
6.0.431 130 7/11/2025
6.0.430 145 7/11/2025
6.0.429 141 7/10/2025
6.0.428 151 7/10/2025
6.0.427 139 7/9/2025
6.0.426 150 7/8/2025
6.0.425 153 7/8/2025
6.0.424 142 7/8/2025
6.0.423 149 7/8/2025
6.0.422 144 7/8/2025
6.0.421 142 7/8/2025
6.0.420 148 7/7/2025
6.0.419 156 7/7/2025
6.0.418 146 7/7/2025
6.0.417 148 7/7/2025
6.0.416 139 7/6/2025
6.0.415 112 7/4/2025
6.0.414 118 7/4/2025
6.0.411 155 7/3/2025
6.0.410 150 7/3/2025
6.0.409 154 7/3/2025
6.0.408 150 7/1/2025
6.0.407 148 7/1/2025
6.0.406 151 7/1/2025
6.0.405 158 7/1/2025
6.0.404 135 6/26/2025
6.0.403 148 6/26/2025
6.0.401 151 6/24/2025
6.0.400 152 6/24/2025
6.0.399 140 6/23/2025
6.0.398 145 6/23/2025
6.0.397 112 6/20/2025
6.0.396 152 6/19/2025
6.0.395 142 6/18/2025
6.0.394 142 6/18/2025
6.0.392 151 6/18/2025
6.0.390 146 6/18/2025