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)); } }
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 } } }); } }