/
vshmidt
/
masstransit
Обзор
Документация
Войти
/
vshmidt
/
masstransit
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/MassTransit/SagaStateMachine/StateMachineExtensions.cs
28 строк
1 KB
Chris Patterson
Huge push towards optimization on startup, state machines, type discovery, caching, and the consume pipeline. Rebuilt the dispatch filter as a consume context filter for message type dispatch.
27 мар 2024, 02:43
27 мар 2024, 02:43
c17b1de
Код
Авторство
О чём код?
namespace MassTransit { using System.Threading.Tasks; using SagaStateMachine; public static class StateMachineExtensions { /// <summary> /// Transition a state machine instance to a specific state, producing any events related /// to the transaction such as leaving the previous state and entering the target state /// </summary> /// <typeparam name="TSaga">The state instance type</typeparam> /// <param name="context"></param> /// <param name="state">The target state</param> public static Task TransitionToState<TSaga>(this BehaviorContext<TSaga> context, State state) where TSaga : class, SagaStateMachineInstance { IStateAccessor<TSaga> accessor = context.StateMachine.Accessor; State<TSaga> toState = context.StateMachine.GetState(state.Name); IStateMachineActivity<TSaga> activity = new TransitionActivity<TSaga>(toState, accessor); IBehavior<TSaga> behavior = new LastBehavior<TSaga>(activity); return behavior.Execute(context.CreateProxy(toState.Enter)); } } }