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);
        }
Example #3
0
        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);
        }