Reo.Core.BaseDomainModels.MediatR 6.0.599

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.599
                    
NuGet\Install-Package Reo.Core.BaseDomainModels.MediatR -Version 6.0.599
                    
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.599" />
                    
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.599" />
                    
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.599
                    
#r "nuget: Reo.Core.BaseDomainModels.MediatR, 6.0.599"
                    
#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.599
                    
#: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.599
                    
Install as a Cake Addin
#tool nuget:?package=Reo.Core.BaseDomainModels.MediatR&version=6.0.599
                    
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.630 0 10/17/2025
8.0.629 90 10/13/2025
8.0.628 98 10/13/2025
8.0.627 95 10/13/2025
8.0.626 96 10/10/2025
8.0.625 95 10/10/2025
8.0.624 114 10/10/2025
8.0.623 130 10/10/2025
8.0.622 169 10/9/2025
8.0.621 165 10/9/2025
8.0.620 165 10/9/2025
8.0.619 164 10/9/2025
8.0.618 167 10/9/2025
8.0.617 162 10/9/2025
8.0.616 165 10/9/2025
8.0.615 162 10/9/2025
8.0.614 168 10/8/2025
8.0.613 170 10/8/2025
8.0.612 169 10/6/2025
8.0.611 130 10/3/2025
8.0.610 137 10/3/2025
8.0.609 143 10/3/2025
8.0.608 133 10/3/2025
8.0.607 134 10/3/2025
8.0.606 135 10/3/2025
8.0.605 138 10/3/2025
8.0.604 138 10/3/2025
8.0.603 144 10/3/2025
8.0.602 174 10/2/2025
8.0.600 169 10/2/2025
8.0.599 173 10/2/2025
8.0.598 173 10/1/2025
8.0.597 172 10/1/2025
8.0.596 171 10/1/2025
8.0.595 172 9/30/2025
8.0.594 171 9/30/2025
8.0.593 180 9/30/2025
8.0.592 177 9/30/2025
8.0.591 183 9/30/2025
8.0.589 183 9/29/2025
8.0.588 178 9/29/2025
8.0.587 179 9/29/2025
8.0.586 183 9/29/2025
8.0.585 183 9/29/2025
8.0.583 150 9/26/2025
8.0.582 165 9/26/2025
8.0.580 178 9/25/2025
8.0.579 181 9/25/2025
8.0.578 184 9/25/2025
8.0.577 180 9/25/2025
8.0.576 182 9/25/2025
8.0.575 185 9/25/2025
8.0.574 191 9/24/2025
8.0.573 175 9/23/2025
8.0.572 178 9/23/2025
8.0.571 172 9/23/2025
8.0.570 183 9/23/2025
8.0.569 203 9/22/2025
8.0.568 222 9/22/2025
8.0.567 228 9/22/2025
8.0.566 207 9/21/2025
8.0.565 242 9/19/2025
8.0.564 237 9/19/2025
8.0.563 251 9/19/2025
8.0.562 260 9/19/2025
8.0.561 294 9/16/2025
8.0.560 295 9/16/2025
8.0.559 293 9/16/2025
8.0.558 298 9/16/2025
8.0.557 241 9/15/2025
8.0.556 250 9/15/2025
8.0.555 111 9/12/2025
8.0.554 164 9/11/2025
8.0.553 166 9/11/2025
8.0.552 150 9/11/2025
8.0.551 162 9/11/2025
8.0.550 160 9/11/2025
8.0.548 159 9/11/2025
8.0.547 157 9/11/2025
8.0.546 158 9/11/2025
8.0.545 151 9/11/2025
8.0.544 168 9/10/2025
8.0.543 164 9/10/2025
8.0.542 161 9/10/2025
8.0.541 144 9/10/2025
8.0.540 147 9/9/2025
8.0.539 168 9/9/2025
8.0.538 161 9/9/2025
8.0.537 162 9/9/2025
8.0.536 162 9/9/2025
8.0.535 166 9/9/2025
8.0.534 156 9/9/2025
8.0.533 159 9/9/2025
8.0.532 152 9/8/2025
8.0.531 131 9/5/2025
8.0.530 178 9/4/2025
8.0.529 160 9/4/2025
8.0.528 163 9/4/2025
8.0.527 169 9/4/2025
8.0.526 166 9/3/2025
8.0.525 159 9/2/2025
8.0.524 164 9/2/2025
8.0.523 161 9/2/2025
8.0.522 199 8/28/2025
8.0.521 210 8/27/2025
8.0.520 212 8/27/2025
8.0.519 208 8/27/2025
8.0.518 207 8/27/2025
8.0.517 183 8/25/2025
8.0.516 300 8/25/2025
8.0.515 229 8/24/2025
8.0.514 159 8/21/2025
8.0.513 153 8/20/2025
8.0.512 168 8/20/2025
8.0.511 158 8/20/2025
8.0.510 156 8/18/2025
8.0.509 160 8/18/2025
8.0.508 172 8/13/2025
8.0.506 169 8/13/2025
8.0.505 158 8/13/2025
8.0.504 163 8/13/2025
8.0.503 162 8/13/2025
8.0.502 167 8/12/2025
8.0.501 152 8/12/2025
8.0.500 172 8/12/2025
8.0.499 169 8/12/2025
8.0.498 162 8/11/2025
8.0.497 184 8/8/2025
8.0.496 201 8/8/2025
8.0.495 210 8/8/2025
8.0.494 229 8/8/2025
8.0.493 239 8/7/2025
8.0.492 244 8/7/2025
8.0.491 235 8/7/2025
8.0.490 235 8/7/2025
8.0.489 252 8/5/2025
8.0.488 255 8/5/2025
8.0.487 125 8/1/2025
8.0.486 149 7/30/2025
8.0.485 150 7/28/2025
8.0.484 136 7/28/2025
8.0.483 141 7/28/2025
8.0.482 144 7/28/2025
8.0.481 140 7/28/2025
8.0.480 400 7/25/2025
8.0.479 423 7/25/2025
8.0.478 434 7/25/2025
8.0.477 438 7/25/2025
8.0.476 436 7/25/2025
8.0.475 493 7/24/2025
8.0.474 491 7/24/2025
8.0.473 542 7/23/2025
8.0.472 539 7/23/2025
8.0.470 543 7/23/2025
8.0.469 533 7/23/2025
8.0.468 540 7/23/2025
8.0.467 539 7/23/2025
8.0.466 549 7/23/2025
8.0.465 556 7/23/2025
8.0.464 546 7/23/2025
8.0.463 542 7/23/2025
8.0.462 561 7/22/2025
8.0.461 553 7/22/2025
8.0.460 448 7/21/2025
8.0.459 124 7/18/2025
8.0.458 142 7/18/2025
8.0.457 172 7/17/2025
8.0.456 167 7/17/2025
8.0.455 167 7/17/2025
8.0.454 160 7/17/2025
8.0.453 169 7/17/2025
8.0.452 172 7/17/2025
8.0.451 183 7/17/2025
8.0.450 160 7/17/2025
8.0.449 152 7/17/2025
8.0.448 167 7/17/2025
8.0.447 171 7/16/2025
8.0.446 176 7/16/2025
8.0.445 173 7/16/2025
8.0.444 168 7/16/2025
8.0.443 178 7/16/2025
8.0.442 173 7/16/2025
8.0.439 165 7/15/2025
8.0.438 174 7/15/2025
8.0.437 169 7/15/2025
8.0.436 157 7/15/2025
8.0.435 170 7/15/2025
8.0.433 177 7/14/2025
8.0.432 174 7/14/2025
8.0.431 153 7/11/2025
8.0.430 162 7/11/2025
8.0.429 174 7/10/2025
8.0.428 174 7/10/2025
8.0.427 178 7/9/2025
8.0.426 189 7/8/2025
8.0.425 175 7/8/2025
8.0.424 175 7/8/2025
8.0.423 180 7/8/2025
8.0.422 170 7/8/2025
8.0.421 178 7/8/2025
8.0.420 171 7/7/2025
8.0.419 175 7/7/2025
8.0.418 177 7/7/2025
8.0.417 171 7/7/2025
8.0.416 172 7/6/2025
8.0.415 141 7/4/2025
8.0.414 140 7/4/2025
8.0.411 189 7/3/2025
8.0.410 178 7/3/2025
8.0.409 182 7/3/2025
8.0.408 181 7/1/2025
8.0.407 174 7/1/2025
8.0.406 174 7/1/2025
8.0.405 179 7/1/2025
8.0.404 224 6/26/2025
8.0.403 173 6/26/2025
8.0.401 272 6/24/2025
8.0.400 181 6/24/2025
8.0.399 171 6/23/2025
8.0.398 185 6/23/2025
8.0.397 132 6/20/2025
8.0.396 185 6/19/2025
8.0.395 174 6/18/2025
8.0.394 176 6/18/2025
8.0.392 177 6/18/2025
8.0.390 346 6/18/2025
6.0.630 0 10/17/2025
6.0.629 92 10/13/2025
6.0.628 94 10/13/2025
6.0.627 92 10/13/2025
6.0.626 92 10/10/2025
6.0.625 95 10/10/2025
6.0.624 115 10/10/2025
6.0.623 126 10/10/2025
6.0.622 163 10/9/2025
6.0.621 161 10/9/2025
6.0.620 164 10/9/2025
6.0.619 163 10/9/2025
6.0.618 165 10/9/2025
6.0.617 157 10/9/2025
6.0.616 162 10/9/2025
6.0.615 162 10/9/2025
6.0.614 163 10/8/2025
6.0.613 159 10/8/2025
6.0.612 165 10/6/2025
6.0.611 126 10/3/2025
6.0.610 129 10/3/2025
6.0.609 128 10/3/2025
6.0.608 127 10/3/2025
6.0.607 131 10/3/2025
6.0.606 134 10/3/2025
6.0.605 133 10/3/2025
6.0.604 135 10/3/2025
6.0.603 141 10/3/2025
6.0.602 167 10/2/2025
6.0.600 170 10/2/2025
6.0.599 171 10/2/2025
6.0.598 167 10/1/2025
6.0.597 169 10/1/2025
6.0.596 171 10/1/2025
6.0.595 167 9/30/2025
6.0.594 168 9/30/2025
6.0.593 180 9/30/2025
6.0.592 176 9/30/2025
6.0.591 176 9/30/2025
6.0.589 172 9/29/2025
6.0.588 177 9/29/2025
6.0.587 179 9/29/2025
6.0.586 174 9/29/2025
6.0.585 176 9/29/2025
6.0.583 139 9/26/2025
6.0.582 165 9/26/2025
6.0.580 185 9/25/2025
6.0.579 181 9/25/2025
6.0.578 178 9/25/2025
6.0.577 182 9/25/2025
6.0.576 176 9/25/2025
6.0.575 180 9/25/2025
6.0.574 188 9/24/2025
6.0.573 173 9/23/2025
6.0.572 167 9/23/2025
6.0.571 173 9/23/2025
6.0.570 182 9/23/2025
6.0.569 194 9/22/2025
6.0.568 221 9/22/2025
6.0.567 236 9/22/2025
6.0.566 202 9/21/2025
6.0.565 242 9/19/2025
6.0.564 251 9/19/2025
6.0.563 248 9/19/2025
6.0.562 270 9/19/2025
6.0.561 291 9/16/2025
6.0.560 293 9/16/2025
6.0.559 294 9/16/2025
6.0.558 293 9/16/2025
6.0.557 236 9/15/2025
6.0.556 232 9/15/2025
6.0.555 119 9/12/2025
6.0.554 158 9/11/2025
6.0.553 163 9/11/2025
6.0.552 159 9/11/2025
6.0.551 156 9/11/2025
6.0.550 154 9/11/2025
6.0.548 157 9/11/2025
6.0.547 154 9/11/2025
6.0.546 170 9/11/2025
6.0.545 148 9/11/2025
6.0.544 165 9/10/2025
6.0.543 160 9/10/2025
6.0.542 159 9/10/2025
6.0.541 165 9/10/2025
6.0.540 157 9/9/2025
6.0.539 173 9/9/2025
6.0.538 160 9/9/2025
6.0.537 158 9/9/2025
6.0.536 161 9/9/2025
6.0.535 156 9/9/2025
6.0.534 161 9/9/2025
6.0.533 154 9/9/2025
6.0.532 161 9/8/2025
6.0.531 134 9/5/2025
6.0.530 177 9/4/2025
6.0.529 165 9/4/2025
6.0.528 168 9/4/2025
6.0.527 172 9/4/2025
6.0.526 173 9/3/2025
6.0.525 153 9/2/2025
6.0.524 158 9/2/2025
6.0.523 173 9/2/2025
6.0.522 215 8/28/2025
6.0.521 193 8/27/2025
6.0.520 208 8/27/2025
6.0.519 203 8/27/2025
6.0.518 204 8/27/2025
6.0.517 179 8/25/2025
6.0.516 296 8/25/2025
6.0.515 231 8/24/2025
6.0.514 158 8/21/2025
6.0.513 161 8/20/2025
6.0.512 154 8/20/2025
6.0.511 156 8/20/2025
6.0.510 159 8/18/2025
6.0.509 154 8/18/2025
6.0.508 163 8/13/2025
6.0.506 163 8/13/2025
6.0.505 158 8/13/2025
6.0.504 172 8/13/2025
6.0.503 162 8/13/2025
6.0.502 162 8/12/2025
6.0.501 147 8/12/2025
6.0.500 161 8/12/2025
6.0.499 164 8/12/2025
6.0.498 161 8/11/2025
6.0.497 185 8/8/2025
6.0.496 202 8/8/2025
6.0.495 207 8/8/2025
6.0.494 230 8/8/2025
6.0.493 240 8/7/2025
6.0.492 225 8/7/2025
6.0.491 228 8/7/2025
6.0.490 238 8/7/2025
6.0.489 254 8/5/2025
6.0.488 254 8/5/2025
6.0.487 118 8/1/2025
6.0.486 144 7/30/2025
6.0.485 137 7/28/2025
6.0.484 130 7/28/2025
6.0.483 138 7/28/2025
6.0.482 137 7/28/2025
6.0.481 132 7/28/2025
6.0.480 390 7/25/2025
6.0.479 429 7/25/2025
6.0.478 422 7/25/2025
6.0.477 436 7/25/2025
6.0.476 436 7/25/2025
6.0.475 496 7/24/2025
6.0.474 490 7/24/2025
6.0.473 532 7/23/2025
6.0.472 541 7/23/2025
6.0.470 538 7/23/2025
6.0.469 525 7/23/2025
6.0.468 544 7/23/2025
6.0.467 529 7/23/2025
6.0.466 543 7/23/2025
6.0.465 536 7/23/2025
6.0.464 537 7/23/2025
6.0.463 550 7/23/2025
6.0.462 554 7/22/2025
6.0.461 564 7/22/2025
6.0.460 446 7/21/2025
6.0.459 121 7/18/2025
6.0.458 136 7/18/2025
6.0.457 179 7/17/2025
6.0.456 172 7/17/2025
6.0.455 174 7/17/2025
6.0.454 155 7/17/2025
6.0.453 149 7/17/2025
6.0.452 148 7/17/2025
6.0.451 146 7/17/2025
6.0.450 143 7/17/2025
6.0.449 145 7/17/2025
6.0.448 166 7/17/2025
6.0.447 155 7/16/2025
6.0.446 156 7/16/2025
6.0.445 161 7/16/2025
6.0.444 160 7/16/2025
6.0.443 156 7/16/2025
6.0.442 156 7/16/2025
6.0.439 149 7/15/2025
6.0.438 144 7/15/2025
6.0.437 157 7/15/2025
6.0.436 148 7/15/2025
6.0.435 138 7/15/2025
6.0.433 160 7/14/2025
6.0.432 149 7/14/2025
6.0.431 142 7/11/2025
6.0.430 157 7/11/2025
6.0.429 144 7/10/2025
6.0.428 164 7/10/2025
6.0.427 151 7/9/2025
6.0.426 162 7/8/2025
6.0.425 155 7/8/2025
6.0.424 153 7/8/2025
6.0.423 160 7/8/2025
6.0.422 155 7/8/2025
6.0.421 153 7/8/2025
6.0.420 159 7/7/2025
6.0.419 167 7/7/2025
6.0.418 157 7/7/2025
6.0.417 159 7/7/2025
6.0.416 150 7/6/2025
6.0.415 123 7/4/2025
6.0.414 129 7/4/2025
6.0.411 169 7/3/2025
6.0.410 161 7/3/2025
6.0.409 175 7/3/2025
6.0.408 161 7/1/2025
6.0.407 149 7/1/2025
6.0.406 162 7/1/2025
6.0.405 169 7/1/2025
6.0.404 146 6/26/2025
6.0.403 159 6/26/2025
6.0.401 163 6/24/2025
6.0.400 163 6/24/2025
6.0.399 151 6/23/2025
6.0.398 156 6/23/2025
6.0.397 124 6/20/2025
6.0.396 164 6/19/2025
6.0.395 154 6/18/2025
6.0.394 153 6/18/2025
6.0.392 162 6/18/2025
6.0.390 157 6/18/2025