/
vshmidt
/
masstransit
Обзор
Документация
Войти
/
vshmidt
/
masstransit
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/Persistence/MassTransit.EntityFrameworkIntegration/Configuration/EntityFrameworkSagaRepositoryRegistrationExtensions.cs
42 строки
2 KB
Chris Patterson
Integration of all external packages into MassTransit, split out into Abstractions, Middleware, and the core MassTransit assembly.
22 янв 2022, 18:24
22 янв 2022, 18:24
b5b4f50
Код
Авторство
О чём код?
namespace MassTransit { using System; using Configuration; public static class EntityFrameworkSagaRepositoryRegistrationExtensions { /// <summary> /// Adds a EntityFramework saga repository to the registration /// </summary> /// <param name="configurator"></param> /// <param name="configure"></param> /// <typeparam name="TSaga"></typeparam> /// <returns></returns> public static ISagaRegistrationConfigurator<TSaga> EntityFrameworkRepository<TSaga>(this ISagaRegistrationConfigurator<TSaga> configurator, Action<IEntityFrameworkSagaRepositoryConfigurator<TSaga>> configure) where TSaga : class, ISaga { var repositoryConfigurator = new EntityFrameworkSagaRepositoryConfigurator<TSaga>(); configure?.Invoke(repositoryConfigurator); repositoryConfigurator.Validate().ThrowIfContainsFailure("The Entity Framework saga repository configuration is invalid:"); configurator.Repository(x => repositoryConfigurator.Register(x)); return configurator; } /// <summary> /// Use the EntityFramework saga repository for sagas configured by type (without a specific generic call to AddSaga/AddSagaStateMachine) /// </summary> /// <param name="configurator"></param> /// <param name="configure"></param> public static void SetEntityFrameworkSagaRepositoryProvider(this IRegistrationConfigurator configurator, Action<IEntityFrameworkSagaRepositoryConfigurator> configure) { configurator.SetSagaRepositoryProvider(new EntityFrameworkSagaRepositoryRegistrationProvider(configure)); } } }