public CorrelatedStateMachineSubscriptionConnector(StateMachine <TInstance> stateMachine,
                                                           ISagaRepository <TInstance> sagaRepository,
                                                           Event <TMessage> dataEvent,
                                                           IEnumerable <State> states,
                                                           StateMachinePolicyFactory <TInstance> policyFactory,
                                                           Expression <Func <TInstance, bool> > removeExpression)
        {
            _stateMachine   = stateMachine;
            _sagaRepository = sagaRepository;
            _dataEvent      = dataEvent;

            _policy = policyFactory.GetPolicy <TMessage>(states, x => x.CorrelationId, removeExpression);
        }
        public ExpressionStateMachineSubscriptionConnector(StateMachine <TInstance> stateMachine,
                                                           ISagaRepository <TInstance> sagaRepository,
                                                           Event <TMessage> dataEvent,
                                                           IEnumerable <State> states,
                                                           StateMachinePolicyFactory <TInstance> policyFactory,
                                                           Expression <Func <TInstance, bool> > removeExpression,
                                                           Expression <Func <TInstance, TMessage, bool> > selector,
                                                           Func <TMessage, Guid> correlationIdSelector)
        {
            _stateMachine   = stateMachine;
            _sagaRepository = sagaRepository;
            _dataEvent      = dataEvent;
            _selector       = selector;

            _policy = policyFactory.GetPolicy(states, correlationIdSelector, removeExpression);
        }