public static SagaTypes ToSagaTypes(HandlerCall call)
 {
     return new SagaTypes
     {
         HandlerType = call.HandlerType,
         MessageType = call.InputType(),
         StateType = call.HandlerType.FindInterfaceThatCloses(typeof(IStatefulSaga<>)).GetGenericArguments().Single()
     };
 }
Beispiel #2
0
 public static SagaTypes ToSagaTypes(HandlerCall call)
 {
     return(new SagaTypes
     {
         HandlerType = call.HandlerType,
         MessageType = call.InputType(),
         StateType = call.HandlerType.FindInterfaceThatCloses(typeof(IStatefulSaga <>)).GetGenericArguments().Single()
     });
 }
Beispiel #3
0
        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);
                }
            }
        }