/
vshmidt
/
masstransit
Обзор
Документация
Войти
/
vshmidt
/
masstransit
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/Persistence/MassTransit.EntityFrameworkIntegration/EntityFrameworkIntegration/Saga/OptimisticSagaRepositoryLockStrategy.cs
37 строк
1 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.EntityFrameworkIntegration.Saga { using System; using System.Data; using System.Data.Entity; using System.Threading; using System.Threading.Tasks; public class OptimisticSagaRepositoryLockStrategy<TSaga> : ISagaRepositoryLockStrategy<TSaga> where TSaga : class, ISaga { readonly ILoadQueryExecutor<TSaga> _executor; readonly ILoadQueryProvider<TSaga> _provider; public OptimisticSagaRepositoryLockStrategy(ILoadQueryProvider<TSaga> provider, ILoadQueryExecutor<TSaga> executor, IsolationLevel isolationLevel) { _provider = provider; _executor = executor; IsolationLevel = isolationLevel; } public IsolationLevel IsolationLevel { get; } public Task<TSaga> Load(DbContext context, Guid correlationId, CancellationToken cancellationToken) { return _executor.Load(context, correlationId, cancellationToken); } public async Task<SagaLockContext<TSaga>> CreateLockContext(DbContext context, ISagaQuery<TSaga> query, CancellationToken cancellationToken) { return new OptimisticSagaLockContext<TSaga>(context, query, cancellationToken, _provider); } } }