/
vshmidt
/
masstransit
Обзор
Документация
Войти
/
vshmidt
/
masstransit
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/Persistence/MassTransit.DapperIntegration/Configuration/DapperSagaRepositoryRegistrationExtensions.cs
45 строк
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; using DapperIntegration.Configuration; public static class DapperSagaRepositoryRegistrationExtensions { /// <summary> /// Adds a Redis saga repository to the registration /// </summary> /// <param name="configurator"></param> /// <param name="connectionString"></param> /// <param name="configure"></param> /// <typeparam name="T"></typeparam> /// <returns></returns> public static ISagaRegistrationConfigurator<T> DapperRepository<T>(this ISagaRegistrationConfigurator<T> configurator, string connectionString, Action<IDapperSagaRepositoryConfigurator<T>> configure = null) where T : class, ISaga { var repositoryConfigurator = new DapperSagaRepositoryConfigurator<T>(connectionString); configure?.Invoke(repositoryConfigurator); repositoryConfigurator.Validate().ThrowIfContainsFailure("The Dapper saga repository configuration is invalid:"); configurator.Repository(x => repositoryConfigurator.Register(x)); return configurator; } /// <summary> /// Use the Dapper saga repository for sagas configured by type (without a specific generic call to AddSaga/AddSagaStateMachine) /// </summary> /// <param name="configurator"></param> /// <param name="connectionString"></param> /// <param name="configure"></param> public static void SetDapperSagaRepositoryProvider(this IRegistrationConfigurator configurator, string connectionString, Action<IDapperSagaRepositoryConfigurator> configure) { configurator.SetSagaRepositoryProvider(new DapperSagaRepositoryRegistrationProvider(connectionString, configure)); } } }