Beispiel #1
0
        private ExceptionActivityBinder <TInstance, TException> GetBinder(
            Func <ExceptionActivityBinder <TInstance, TException>, ExceptionActivityBinder <TInstance, TException> > callback)
        {
            ExceptionActivityBinder <TInstance, TException> thenBinder = new CatchExceptionActivityBinder <TInstance, TException>(_machine,
                                                                                                                                  _event);

            return(callback(thenBinder));
        }
        public ExceptionActivityBinder <TInstance, TException> If(StateMachineCondition <TInstance> condition,
                                                                  Func <ExceptionActivityBinder <TInstance, TException>, ExceptionActivityBinder <TInstance, TException> > activityCallback)
        {
            ExceptionActivityBinder <TInstance, TException> binder = new CatchExceptionActivityBinder <TInstance, TException>(_machine, _event);

            binder = activityCallback(binder);

            var conditionBinder = new ConditionalActivityBinder <TInstance>(_event, condition, binder);

            return(new CatchExceptionActivityBinder <TInstance, TException>(_machine, _event, _activities, conditionBinder));
        }
Beispiel #3
0
        EventActivityBinder <TInstance, TData> EventActivityBinder <TInstance, TData> .Catch <T>(
            Func <ExceptionActivityBinder <TInstance, TData, T>, ExceptionActivityBinder <TInstance, TData, T> > activityCallback)
        {
            ExceptionActivityBinder <TInstance, TData, T> binder = new CatchExceptionActivityBinder <TInstance, TData, T>(_machine, _event);

            binder = activityCallback(binder);

            ActivityBinder <TInstance> activityBinder = new CatchActivityBinder <TInstance, T>(_event, binder);

            return(new DataEventActivityBinder <TInstance, TData>(_machine, _event, _filter, _activities, activityBinder));
        }
        public ExceptionActivityBinder <TInstance, TException> Catch <T>(
            Func <ExceptionActivityBinder <TInstance, T>, ExceptionActivityBinder <TInstance, T> > activityCallback)
            where T : Exception
        {
            ExceptionActivityBinder <TInstance, T> binder = new CatchExceptionActivityBinder <TInstance, T>(_machine, _event);

            binder = activityCallback(binder);

            ActivityBinder <TInstance> activityBinder = new CatchActivityBinder <TInstance, T>(_event, binder);

            return(new CatchExceptionActivityBinder <TInstance, TException>(_machine, _event, _activities, activityBinder));
        }