Esempio n. 1
0
 public RescueFilter(IPipe <TRescueContext> rescuePipe, IExceptionFilter exceptionFilter,
                     RescueContextFactory <TContext, TRescueContext> rescueContextFactory)
 {
     _rescuePipe           = rescuePipe;
     _exceptionFilter      = exceptionFilter;
     _rescueContextFactory = rescueContextFactory;
 }
        public RescuePipeSpecification(RescueContextFactory <TContext, TRescue> rescueContextFactory)
        {
            _rescueContextFactory = rescueContextFactory;

            _pipeConfigurator        = new PipeConfigurator <TRescue>();
            _contextPipeConfigurator = new ContextPipeConfigurator(_pipeConfigurator);
        }
Esempio n. 3
0
        /// <summary>
        /// Rescue exceptions via the alternate pipe
        /// </summary>
        /// <typeparam name="TContext"></typeparam>
        /// <typeparam name="TRescue"></typeparam>
        /// <param name="configurator"></param>
        /// <param name="rescuePipe"></param>
        /// <param name="rescueContextFactory">Factory method to convert the pipe context to the rescue pipe context</param>
        /// <param name="configure"></param>
        public static void UseRescue <TContext, TRescue>(this IPipeConfigurator <TContext> configurator, IPipe <TRescue> rescuePipe,
                                                         RescueContextFactory <TContext, TRescue> rescueContextFactory, Action <IRescueConfigurator <TContext, TRescue> > configure = null)
            where TContext : class, PipeContext
            where TRescue : class, TContext
        {
            UseRescue(configurator, rescueContextFactory, x =>
            {
                configure?.Invoke(x);

                x.UseFork(rescuePipe);
            });
        }
Esempio n. 4
0
        /// <summary>
        /// Rescue exceptions via the alternate pipe
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <typeparam name="TRescue"></typeparam>
        /// <param name="configurator"></param>
        /// <param name="rescuePipe"></param>
        /// <param name="rescueContextFactory">Factory method to convert the pipe context to the rescue pipe context</param>
        /// <param name="configure"></param>
        public static void UseRescue <T, TRescue>(this IPipeConfigurator <T> configurator, IPipe <TRescue> rescuePipe,
                                                  RescueContextFactory <T, TRescue> rescueContextFactory, Action <IRescueConfigurator> configure = null)
            where T : class, PipeContext
            where TRescue : class, PipeContext
        {
            if (configurator == null)
            {
                throw new ArgumentNullException(nameof(configurator));
            }

            var specification = new RescuePipeSpecification <T, TRescue>(rescuePipe, rescueContextFactory);

            configure?.Invoke(specification);

            configurator.AddPipeSpecification(specification);
        }
 public RescuePipeSpecification(IPipe <TRescue> rescuePipe, RescueContextFactory <TContext, TRescue> rescueContextFactory)
 {
     _rescuePipe           = rescuePipe;
     _rescueContextFactory = rescueContextFactory;
 }