public static bool TryGetExceptionContext <TInstance, TException>(this BehaviorContext <TInstance> context, out ConsumeExceptionEventContext <TInstance, TException> exceptionContext) where TException : Exception { if (context is BehaviorExceptionContext <TInstance, TException> behaviorExceptionContext) { var consumeContext = context.GetPayload <ConsumeContext>(); exceptionContext = new AutomatonymousConsumeExceptionEventContext <TInstance, TException>(behaviorExceptionContext, consumeContext); return(true); } exceptionContext = null; return(false); }
public static bool TryGetExceptionContext <TInstance, TException>(this BehaviorContext <TInstance> context, out ConsumeExceptionEventContext <TInstance, TException> exceptionContext) where TException : Exception { if (context is BehaviorExceptionContext <TInstance, TException> behaviorExceptionContext) { if (!context.TryGetPayload(out ConsumeContext consumeContext)) { throw new ContextException("The consume context could not be retrieved."); } exceptionContext = new AutomatonymousConsumeExceptionEventContext <TInstance, TException>(behaviorExceptionContext, consumeContext); return(true); } exceptionContext = null; return(false); }
public static bool TryGetExceptionContext <TInstance, TData, TException>( this BehaviorContext <TInstance, TData> context, out ConsumeExceptionEventContext <TInstance, TData, TException> exceptionContext) where TData : class where TException : Exception { var behaviorExceptionContext = context as BehaviorExceptionContext <TInstance, TData, TException>; if (behaviorExceptionContext != null) { ConsumeContext <TData> consumeContext; if (!context.TryGetPayload(out consumeContext)) { throw new ContextException("The consume context could not be retrieved."); } exceptionContext = new AutomatonymousConsumeExceptionEventContext <TInstance, TData, TException>(behaviorExceptionContext, consumeContext); return(true); } exceptionContext = null; return(false); }