Exemplo n.º 1
0
        public bool Inspect <TComponent, TMessage>(CorrelatedSagaStateMachineMessageSink <TComponent, TMessage> sink)
            where TMessage : class, CorrelatedBy <Guid>
            where TComponent : SagaStateMachine <TComponent>, ISaga
        {
            string policyDescription = GetPolicy(sink.Policy);

            Append(string.Format("{0} SagaStateMachine {1} ({2})", policyDescription, GetComponentName <TComponent>(),
                                 GetMessageName <TMessage>()));

            return(true);
        }
        public ISagaMessageSink <TSaga, TMessage> CreateSink()
        {
            var sink = new CorrelatedSagaStateMachineMessageSink <TSaga, TMessage>(_sagaRepository, _policy,
                                                                                   _dataEvent);

            if (sink == null)
            {
                throw new ConfigurationException("Could not build the message sink: " +
                                                 typeof(CorrelatedSagaStateMachineMessageSink <TSaga, TMessage>).ToFriendlyName());
            }
            return(sink);
        }
        protected virtual IPipelineSink <TMessage> CreateCorrelatedSink <V>(DataEvent <TSaga, V> dataEvent, ISagaPolicy <TSaga, V> policy)
            where V : class, CorrelatedBy <Guid>
        {
            var sink = new CorrelatedSagaStateMachineMessageSink <TSaga, V>(_context, _bus, _repository, policy, dataEvent);

            if (sink == null)
            {
                throw new ConfigurationException("Could not build the message sink: " + typeof(CorrelatedSagaStateMachineMessageSink <TSaga, V>).ToFriendlyName());
            }

            return((IPipelineSink <TMessage>)sink);
        }
Exemplo n.º 4
0
        public bool Inspect <TComponent, TMessage>(CorrelatedSagaStateMachineMessageSink <TComponent, TMessage> sink)
            where TMessage : class, CorrelatedBy <Guid>
            where TComponent : SagaStateMachine <TComponent>, ISaga
        {
            Type componentType = typeof(TComponent);

            string componentName = componentType.IsGenericType ? componentType.GetGenericTypeDefinition().FullName : componentType.FullName;

            string policyDescription = GetPolicy(sink.Policy);

            Append(string.Format("{0} SagaStateMachine {1} ({2})", policyDescription, componentName, typeof(TMessage).Name));

            return(true);
        }