/
vshmidt
/
masstransit
Обзор
Документация
Войти
/
vshmidt
/
masstransit
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/MassTransit.TestFramework/Sagas/TestStateMachineSaga.cs
35 строк
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.TestFramework.Sagas { public class TestStateMachineSaga : MassTransitStateMachine<TestInstance> { public TestStateMachineSaga() { Event(() => Updated, x => x.CorrelateBy(p => p.Key, m => m.Message.TestKey)); Initially( When(Started) .Then(context => context.Saga.Key = context.Message.TestKey) .Activity(x => x.OfInstanceType<PublishTestStartedActivity>()) .TransitionTo(Active)); During(Active, When(Updated) .Publish(context => new TestUpdated { CorrelationId = context.Saga.CorrelationId, TestKey = context.Saga.Key }) .TransitionTo(Done) .Finalize()); SetCompletedWhenFinalized(); } public State Active { get; private set; } public State Done { get; private set; } public Event<StartTest> Started { get; private set; } public Event<UpdateTest> Updated { get; private set; } } }