Reo.Core.BaseDomainModels.MediatR 8.0.504

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

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.611 59 10/3/2025
8.0.610 68 10/3/2025
8.0.609 62 10/3/2025
8.0.608 64 10/3/2025
8.0.607 68 10/3/2025
8.0.606 67 10/3/2025
8.0.605 72 10/3/2025
8.0.604 73 10/3/2025
8.0.603 77 10/3/2025
8.0.602 113 10/2/2025
8.0.600 104 10/2/2025
8.0.599 108 10/2/2025
8.0.598 112 10/1/2025
8.0.597 111 10/1/2025
8.0.596 111 10/1/2025
8.0.595 123 9/30/2025
8.0.594 123 9/30/2025
8.0.593 141 9/30/2025
8.0.592 153 9/30/2025
8.0.591 158 9/30/2025
8.0.589 174 9/29/2025
8.0.588 169 9/29/2025
8.0.587 171 9/29/2025
8.0.586 176 9/29/2025
8.0.585 176 9/29/2025
8.0.583 142 9/26/2025
8.0.582 158 9/26/2025
8.0.580 172 9/25/2025
8.0.579 174 9/25/2025
8.0.578 177 9/25/2025
8.0.577 173 9/25/2025
8.0.576 176 9/25/2025
8.0.575 178 9/25/2025
8.0.574 188 9/24/2025
8.0.573 170 9/23/2025
8.0.572 171 9/23/2025
8.0.571 169 9/23/2025
8.0.570 176 9/23/2025
8.0.569 196 9/22/2025
8.0.568 216 9/22/2025
8.0.567 221 9/22/2025
8.0.566 201 9/21/2025
8.0.565 241 9/19/2025
8.0.564 232 9/19/2025
8.0.563 246 9/19/2025
8.0.562 254 9/19/2025
8.0.561 289 9/16/2025
8.0.560 290 9/16/2025
8.0.559 287 9/16/2025
8.0.558 292 9/16/2025
8.0.557 235 9/15/2025
8.0.556 248 9/15/2025
8.0.555 109 9/12/2025
8.0.554 156 9/11/2025
8.0.553 160 9/11/2025
8.0.552 145 9/11/2025
8.0.551 157 9/11/2025
8.0.550 155 9/11/2025
8.0.548 152 9/11/2025
8.0.547 151 9/11/2025
8.0.546 152 9/11/2025
8.0.545 146 9/11/2025
8.0.544 165 9/10/2025
8.0.543 159 9/10/2025
8.0.542 156 9/10/2025
8.0.541 139 9/10/2025
8.0.540 141 9/9/2025
8.0.539 160 9/9/2025
8.0.538 156 9/9/2025
8.0.537 156 9/9/2025
8.0.536 157 9/9/2025
8.0.535 156 9/9/2025
8.0.534 154 9/9/2025
8.0.533 154 9/9/2025
8.0.532 147 9/8/2025
8.0.531 126 9/5/2025
8.0.530 171 9/4/2025
8.0.529 155 9/4/2025
8.0.528 158 9/4/2025
8.0.527 166 9/4/2025
8.0.526 160 9/3/2025
8.0.525 152 9/2/2025
8.0.524 154 9/2/2025
8.0.523 154 9/2/2025
8.0.522 194 8/28/2025
8.0.521 205 8/27/2025
8.0.520 207 8/27/2025
8.0.519 203 8/27/2025
8.0.518 202 8/27/2025
8.0.517 178 8/25/2025
8.0.516 295 8/25/2025
8.0.515 224 8/24/2025
8.0.514 154 8/21/2025
8.0.513 147 8/20/2025
8.0.512 163 8/20/2025
8.0.511 153 8/20/2025
8.0.510 151 8/18/2025
8.0.509 155 8/18/2025
8.0.508 168 8/13/2025
8.0.506 164 8/13/2025
8.0.505 157 8/13/2025
8.0.504 158 8/13/2025
8.0.503 157 8/13/2025
8.0.502 162 8/12/2025
8.0.501 147 8/12/2025
8.0.500 171 8/12/2025
8.0.499 164 8/12/2025
8.0.498 157 8/11/2025
8.0.497 182 8/8/2025
8.0.496 196 8/8/2025
8.0.495 205 8/8/2025
8.0.494 224 8/8/2025
8.0.493 234 8/7/2025
8.0.492 235 8/7/2025
8.0.491 230 8/7/2025
8.0.490 230 8/7/2025
8.0.489 247 8/5/2025
8.0.488 246 8/5/2025
8.0.487 116 8/1/2025
8.0.486 144 7/30/2025
8.0.485 145 7/28/2025
8.0.484 131 7/28/2025
8.0.483 136 7/28/2025
8.0.482 139 7/28/2025
8.0.481 135 7/28/2025
8.0.480 395 7/25/2025
8.0.479 418 7/25/2025
8.0.478 429 7/25/2025
8.0.477 433 7/25/2025
8.0.476 431 7/25/2025
8.0.475 487 7/24/2025
8.0.474 486 7/24/2025
8.0.473 537 7/23/2025
8.0.472 534 7/23/2025
8.0.470 535 7/23/2025
8.0.469 532 7/23/2025
8.0.468 535 7/23/2025
8.0.467 534 7/23/2025
8.0.466 544 7/23/2025
8.0.465 547 7/23/2025
8.0.464 541 7/23/2025
8.0.463 537 7/23/2025
8.0.462 556 7/22/2025
8.0.461 548 7/22/2025
8.0.460 443 7/21/2025
8.0.459 119 7/18/2025
8.0.458 134 7/18/2025
8.0.457 167 7/17/2025
8.0.456 162 7/17/2025
8.0.455 166 7/17/2025
8.0.454 155 7/17/2025
8.0.453 164 7/17/2025
8.0.452 164 7/17/2025
8.0.451 178 7/17/2025
8.0.450 155 7/17/2025
8.0.449 144 7/17/2025
8.0.448 162 7/17/2025
8.0.447 166 7/16/2025
8.0.446 170 7/16/2025
8.0.445 167 7/16/2025
8.0.444 166 7/16/2025
8.0.443 177 7/16/2025
8.0.442 168 7/16/2025
8.0.439 160 7/15/2025
8.0.438 168 7/15/2025
8.0.437 163 7/15/2025
8.0.436 156 7/15/2025
8.0.435 165 7/15/2025
8.0.433 172 7/14/2025
8.0.432 168 7/14/2025
8.0.431 148 7/11/2025
8.0.430 153 7/11/2025
8.0.429 169 7/10/2025
8.0.428 168 7/10/2025
8.0.427 173 7/9/2025
8.0.426 184 7/8/2025
8.0.425 170 7/8/2025
8.0.424 170 7/8/2025
8.0.423 175 7/8/2025
8.0.422 165 7/8/2025
8.0.421 173 7/8/2025
8.0.420 166 7/7/2025
8.0.419 169 7/7/2025
8.0.418 169 7/7/2025
8.0.417 165 7/7/2025
8.0.416 167 7/6/2025
8.0.415 136 7/4/2025
8.0.414 135 7/4/2025
8.0.411 181 7/3/2025
8.0.410 173 7/3/2025
8.0.409 177 7/3/2025
8.0.408 176 7/1/2025
8.0.407 169 7/1/2025
8.0.406 172 7/1/2025
8.0.405 174 7/1/2025
8.0.404 215 6/26/2025
8.0.403 168 6/26/2025
8.0.401 259 6/24/2025
8.0.400 176 6/24/2025
8.0.399 169 6/23/2025
8.0.398 180 6/23/2025
8.0.397 129 6/20/2025
8.0.396 180 6/19/2025
8.0.395 169 6/18/2025
8.0.394 171 6/18/2025
8.0.392 171 6/18/2025
8.0.390 323 6/18/2025
6.0.611 59 10/3/2025
6.0.610 61 10/3/2025
6.0.609 63 10/3/2025
6.0.608 60 10/3/2025
6.0.607 65 10/3/2025
6.0.606 67 10/3/2025
6.0.605 68 10/3/2025
6.0.604 70 10/3/2025
6.0.603 74 10/3/2025
6.0.602 102 10/2/2025
6.0.600 105 10/2/2025
6.0.599 106 10/2/2025
6.0.598 107 10/1/2025
6.0.597 109 10/1/2025
6.0.596 111 10/1/2025
6.0.595 120 9/30/2025
6.0.594 121 9/30/2025
6.0.593 138 9/30/2025
6.0.592 152 9/30/2025
6.0.591 152 9/30/2025
6.0.589 165 9/29/2025
6.0.588 167 9/29/2025
6.0.587 169 9/29/2025
6.0.586 167 9/29/2025
6.0.585 169 9/29/2025
6.0.583 133 9/26/2025
6.0.582 158 9/26/2025
6.0.580 178 9/25/2025
6.0.579 174 9/25/2025
6.0.578 175 9/25/2025
6.0.577 175 9/25/2025
6.0.576 170 9/25/2025
6.0.575 174 9/25/2025
6.0.574 182 9/24/2025
6.0.573 167 9/23/2025
6.0.572 162 9/23/2025
6.0.571 166 9/23/2025
6.0.570 175 9/23/2025
6.0.569 187 9/22/2025
6.0.568 214 9/22/2025
6.0.567 225 9/22/2025
6.0.566 197 9/21/2025
6.0.565 237 9/19/2025
6.0.564 242 9/19/2025
6.0.563 243 9/19/2025
6.0.562 264 9/19/2025
6.0.561 286 9/16/2025
6.0.560 288 9/16/2025
6.0.559 289 9/16/2025
6.0.558 287 9/16/2025
6.0.557 231 9/15/2025
6.0.556 227 9/15/2025
6.0.555 113 9/12/2025
6.0.554 153 9/11/2025
6.0.553 157 9/11/2025
6.0.552 153 9/11/2025
6.0.551 151 9/11/2025
6.0.550 149 9/11/2025
6.0.548 152 9/11/2025
6.0.547 152 9/11/2025
6.0.546 165 9/11/2025
6.0.545 143 9/11/2025
6.0.544 158 9/10/2025
6.0.543 153 9/10/2025
6.0.542 154 9/10/2025
6.0.541 160 9/10/2025
6.0.540 153 9/9/2025
6.0.539 168 9/9/2025
6.0.538 154 9/9/2025
6.0.537 152 9/9/2025
6.0.536 156 9/9/2025
6.0.535 150 9/9/2025
6.0.534 155 9/9/2025
6.0.533 149 9/9/2025
6.0.532 156 9/8/2025
6.0.531 127 9/5/2025
6.0.530 172 9/4/2025
6.0.529 160 9/4/2025
6.0.528 163 9/4/2025
6.0.527 167 9/4/2025
6.0.526 166 9/3/2025
6.0.525 148 9/2/2025
6.0.524 152 9/2/2025
6.0.523 166 9/2/2025
6.0.522 210 8/28/2025
6.0.521 188 8/27/2025
6.0.520 203 8/27/2025
6.0.519 198 8/27/2025
6.0.518 199 8/27/2025
6.0.517 174 8/25/2025
6.0.516 291 8/25/2025
6.0.515 226 8/24/2025
6.0.514 153 8/21/2025
6.0.513 156 8/20/2025
6.0.512 148 8/20/2025
6.0.511 151 8/20/2025
6.0.510 154 8/18/2025
6.0.509 148 8/18/2025
6.0.508 158 8/13/2025
6.0.506 158 8/13/2025
6.0.505 153 8/13/2025
6.0.504 163 8/13/2025
6.0.503 157 8/13/2025
6.0.502 157 8/12/2025
6.0.501 142 8/12/2025
6.0.500 156 8/12/2025
6.0.499 159 8/12/2025
6.0.498 156 8/11/2025
6.0.497 180 8/8/2025
6.0.496 197 8/8/2025
6.0.495 202 8/8/2025
6.0.494 221 8/8/2025
6.0.493 235 8/7/2025
6.0.492 220 8/7/2025
6.0.491 223 8/7/2025
6.0.490 233 8/7/2025
6.0.489 249 8/5/2025
6.0.488 249 8/5/2025
6.0.487 113 8/1/2025
6.0.486 139 7/30/2025
6.0.485 127 7/28/2025
6.0.484 125 7/28/2025
6.0.483 133 7/28/2025
6.0.482 132 7/28/2025
6.0.481 127 7/28/2025
6.0.480 385 7/25/2025
6.0.479 424 7/25/2025
6.0.478 417 7/25/2025
6.0.477 431 7/25/2025
6.0.476 430 7/25/2025
6.0.475 486 7/24/2025
6.0.474 485 7/24/2025
6.0.473 526 7/23/2025
6.0.472 536 7/23/2025
6.0.470 533 7/23/2025
6.0.469 520 7/23/2025
6.0.468 538 7/23/2025
6.0.467 524 7/23/2025
6.0.466 538 7/23/2025
6.0.465 531 7/23/2025
6.0.464 531 7/23/2025
6.0.463 541 7/23/2025
6.0.462 549 7/22/2025
6.0.461 559 7/22/2025
6.0.460 441 7/21/2025
6.0.459 116 7/18/2025
6.0.458 131 7/18/2025
6.0.457 175 7/17/2025
6.0.456 167 7/17/2025
6.0.455 169 7/17/2025
6.0.454 154 7/17/2025
6.0.453 148 7/17/2025
6.0.452 147 7/17/2025
6.0.451 145 7/17/2025
6.0.450 142 7/17/2025
6.0.449 144 7/17/2025
6.0.448 165 7/17/2025
6.0.447 154 7/16/2025
6.0.446 155 7/16/2025
6.0.445 160 7/16/2025
6.0.444 159 7/16/2025
6.0.443 155 7/16/2025
6.0.442 155 7/16/2025
6.0.439 148 7/15/2025
6.0.438 143 7/15/2025
6.0.437 153 7/15/2025
6.0.436 147 7/15/2025
6.0.435 136 7/15/2025
6.0.433 158 7/14/2025
6.0.432 147 7/14/2025
6.0.431 140 7/11/2025
6.0.430 155 7/11/2025
6.0.429 142 7/10/2025
6.0.428 162 7/10/2025
6.0.427 150 7/9/2025
6.0.426 161 7/8/2025
6.0.425 154 7/8/2025
6.0.424 152 7/8/2025
6.0.423 159 7/8/2025
6.0.422 154 7/8/2025
6.0.421 152 7/8/2025
6.0.420 158 7/7/2025
6.0.419 166 7/7/2025
6.0.418 156 7/7/2025
6.0.417 158 7/7/2025
6.0.416 149 7/6/2025
6.0.415 122 7/4/2025
6.0.414 128 7/4/2025
6.0.411 165 7/3/2025
6.0.410 160 7/3/2025
6.0.409 174 7/3/2025
6.0.408 160 7/1/2025
6.0.407 148 7/1/2025
6.0.406 161 7/1/2025
6.0.405 168 7/1/2025
6.0.404 145 6/26/2025
6.0.403 158 6/26/2025
6.0.401 161 6/24/2025
6.0.400 162 6/24/2025
6.0.399 150 6/23/2025
6.0.398 155 6/23/2025
6.0.397 122 6/20/2025
6.0.396 162 6/19/2025
6.0.395 152 6/18/2025
6.0.394 152 6/18/2025
6.0.392 161 6/18/2025
6.0.390 156 6/18/2025