Reo.Core.BaseDomainModels.MediatorGenerator 8.0.416

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

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.

Требования

Установка

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 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.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.459 0 7/18/2025
8.0.458 5 7/18/2025
8.0.457 59 7/17/2025
8.0.456 62 7/17/2025
8.0.455 62 7/17/2025
8.0.454 59 7/17/2025
8.0.453 60 7/17/2025
8.0.452 61 7/17/2025
8.0.451 59 7/17/2025
8.0.450 57 7/17/2025
8.0.449 61 7/17/2025
8.0.448 65 7/17/2025
8.0.447 60 7/16/2025
8.0.446 62 7/16/2025
8.0.445 62 7/16/2025
8.0.444 60 7/16/2025
8.0.443 57 7/16/2025
8.0.442 61 7/16/2025
8.0.439 64 7/15/2025
8.0.438 64 7/15/2025
8.0.437 64 7/15/2025
8.0.436 62 7/15/2025
8.0.435 65 7/15/2025
8.0.433 67 7/14/2025
8.0.432 65 7/14/2025
8.0.431 85 7/11/2025
8.0.430 97 7/11/2025
8.0.429 110 7/10/2025
8.0.428 108 7/10/2025
8.0.427 116 7/9/2025
8.0.426 110 7/8/2025
8.0.425 112 7/8/2025
8.0.424 112 7/8/2025
8.0.423 109 7/8/2025
8.0.422 105 7/8/2025
8.0.421 111 7/8/2025
8.0.420 109 7/7/2025
8.0.419 110 7/7/2025
8.0.418 109 7/7/2025
8.0.417 112 7/7/2025
8.0.416 110 7/6/2025
8.0.415 72 7/4/2025
8.0.414 81 7/4/2025
8.0.411 115 7/3/2025
8.0.410 111 7/3/2025
8.0.409 108 7/3/2025
8.0.408 110 7/1/2025
8.0.407 108 7/1/2025
8.0.406 107 7/1/2025
8.0.405 118 7/1/2025
8.0.404 120 6/26/2025
8.0.403 110 6/26/2025
8.0.401 125 6/24/2025
8.0.400 113 6/24/2025
8.0.399 114 6/23/2025
8.0.398 114 6/23/2025
8.0.397 72 6/20/2025
8.0.396 116 6/19/2025
8.0.395 118 6/18/2025
8.0.394 117 6/18/2025
8.0.392 120 6/18/2025
8.0.390 117 6/18/2025
6.0.459 0 7/18/2025
6.0.458 2 7/18/2025
6.0.457 56 7/17/2025
6.0.456 57 7/17/2025
6.0.455 61 7/17/2025