public static async Task EndSession <TStepId, TData>(SessionEndContext <TStepId, TData> context) #endif { if (context.Session.Ended) { return; } #if NET35 || NOASYNC SessionEndOperation.RemoveSessionFromStorage(context); #else await SessionEndOperation.RemoveSessionFromStorage(context); #endif TransactionResult <TStepId, TData> result = new TransactionResult <TStepId, TData>() { Session = context.Session, Result = context.Result, Errors = context.CaughtExceptions }; context.Session.TransactionContext.Logger.InfoFormat( "Transaction '{0}' ended with result '{1}'", context.Session.TransactionContext.Info.Name, result.Result); context.Session.End(result); }
public static async Task PrepareEndSession <TStepId, TData>(SessionEndContext <TStepId, TData> context) #endif { if (context.Session.Ended) { return; } if (context.RunPostActions) { context.Session.StepEnumerator.Restart(); #if NET35 || NOASYNC RunPostOperation.RunPost(context); #else await RunPostOperation.RunPost(context); #endif } else { #if NET35 || NOASYNC SessionEndOperation.EndSession(context); #else await SessionEndOperation.EndSession(context); #endif } }