public static async Task MoveToStep <TStepId, TData>(MoveToStepContext <TStepId, TData> context)
#endif
        {
            switch (context.Session.MoveInfo.MoveType)
            {
            case MoveType.Forward:
#if NET35 || NOASYNC
                MoveToStepOperation.MoveForward(context);
#else
                await MoveToStepOperation.MoveForward(context);
#endif
                break;

            case MoveType.Back:
#if NET35 || NOASYNC
                MoveToStepOperation.MoveBack(context);
#else
                await MoveToStepOperation.MoveBack(context);
#endif
                break;

            default:
                throw new NotSupportedException(string.Format("MoveType '{0}' is not supported.", context.Session.MoveInfo.MoveType));
            }
        }
Exemplo n.º 2
0
        private static async Task MoveToNextStep <TStepId, TData>(ITransactionSession <TStepId, TData> session, bool runSession)
#endif
        {
            if (session.MoveInfo == null)
            {
                session.StepEnumerator.MoveNext();

                if (runSession &&
                    !session.Ended)
                {
#if NET35 || NOASYNC
                    RunSessionOperation.RunSession(session);
#else
                    await RunSessionOperation.RunSession(session);
#endif
                }
            }
            else
            {
#if NET35 || NOASYNC
                MoveToStepOperation.MoveToStep(new MoveToStepContext <TStepId, TData>()
#else
                await MoveToStepOperation.MoveToStep(new MoveToStepContext <TStepId, TData>()
#endif
                {
                    Session = session,
#if NET35 || NOASYNC
                    MoveToStepFinishAction = () =>
#else
                    MoveToStepFinishAction = async() =>
#endif
                    {
                        if (runSession &&
                            !session.Ended)
                        {
#if NET35 || NOASYNC
                            RunSessionOperation.RunSession(session);
#else
                            await RunSessionOperation.RunSession(session);
#endif
                        }
                    }
                });
            }
        }