public static SagaTypes ToSagaTypes(HandlerCall call) { return new SagaTypes { HandlerType = call.HandlerType, MessageType = call.InputType(), StateType = call.HandlerType.FindInterfaceThatCloses(typeof(IStatefulSaga<>)).GetGenericArguments().Single() }; }
public static SagaTypes ToSagaTypes(HandlerCall call) { return(new SagaTypes { HandlerType = call.HandlerType, MessageType = call.InputType(), StateType = call.HandlerType.FindInterfaceThatCloses(typeof(IStatefulSaga <>)).GetGenericArguments().Single() }); }
public void Add(HandlerCall call) { _stagedCalls.Add(call); var inputType = call.InputType(); if (inputType.IsConcrete()) { if (_chains.ContainsKey(inputType)) { call.AddClone(_chains[inputType]); } else { var chain = new HandlerChain(); _chains.Add(inputType, chain); call.AddClone(chain); } } }