public ExceptionFilterAttributeTracer(ExceptionFilterAttribute innerFilter, ITraceWriter traceWriter) { Contract.Assert(innerFilter != null); Contract.Assert(traceWriter != null); _innerFilter = innerFilter; _traceStore = traceWriter; }
public void Decorator_GetInner_On_ExceptionFilterAttributeTracer_Returns_ExceptionFilterAttribute() { // Arrange ExceptionFilterAttribute expectedInner = new Mock <ExceptionFilterAttribute>().Object; ExceptionFilterAttributeTracer productUnderTest = new ExceptionFilterAttributeTracer(expectedInner, new TestTraceWriter()); // Act ExceptionFilterAttribute actualInner = Decorator.GetInner(productUnderTest as ExceptionFilterAttribute); // Assert Assert.Same(expectedInner, actualInner); }
public void Inner_Property_On_ExceptionFilterAttributeTracer_Returns_ExceptionFilterAttribute() { // Arrange ExceptionFilterAttribute expectedInner = new Mock <ExceptionFilterAttribute>().Object; ExceptionFilterAttributeTracer productUnderTest = new ExceptionFilterAttributeTracer(expectedInner, new TestTraceWriter()); // Act ExceptionFilterAttribute actualInner = productUnderTest.Inner; // Assert Assert.Same(expectedInner, actualInner); }
/// <summary> /// Adds a type to a <see cref="FilterCollection" /> if it doesn't already exist. /// </summary> /// <typeparam name="TType">The type of the t type.</typeparam> /// <param name="col">The col.</param> /// <param name="order">Filter order</param> /// <returns>FilterCollection.</returns> public static FilterCollection TryAdd <TType>(this FilterCollection col, int?order = null) where TType : IFilterMetadata { var vt = typeof(TType); if (col.All(t => { // Yet more lameness, really should be able to do a simple test here... return(t switch { TypeFilterAttribute tf => tf.ImplementationType != vt, ServiceFilterAttribute sf => sf.ServiceType != vt, FormatFilterAttribute ff => ff.GetType() != vt, ResultFilterAttribute rs => rs.GetType() != vt, ExceptionFilterAttribute ef => ef.GetType() != vt, ActionFilterAttribute af => af.GetType() != vt, _ => t.GetType() != vt }); }
public async Task ExceptionFilterAttribute_ExceptionTestAsync() { var mockKey = "29d342d1-8d08-44fc-a8bc-2ac3e25af903"; Environment.SetEnvironmentVariable("APPINSIGHTS_INSTRUMENTATIONKEY", mockKey); var exceptionFilter = new ExceptionFilterAttribute(); var exceptionContext = new FunctionExceptionContext( functionInstanceId: Guid.NewGuid(), functionName: "FunctionMock", logger: _loggerMock.Object, exceptionDispatchInfo: ExceptionDispatchInfo.Capture(new Exception("MockException")), properties: new Dictionary <string, object>()); await exceptionFilter.OnExceptionAsync(exceptionContext, new CancellationToken()); Assert.NotNull(exceptionFilter); }
/// <summary> /// The create filter tracers. /// </summary> /// <param name="filter"> /// The filter. /// </param> /// <param name="traceWriter"> /// The trace writer. /// </param> /// <returns> /// The <see cref="IEnumerable"/>. /// </returns> public static IEnumerable <IFilter> CreateFilterTracers(IFilter filter, ITraceWriter traceWriter) { List <IFilter> filters = new List <IFilter>(); bool addedCommandHandlerAttributeTracer = false; bool addedExceptionAttributeTracer = false; bool addedEventHandlerAttributeTracer = false; CommandHandlerFilterAttribute commandHandlerFilterAttribute = filter as CommandHandlerFilterAttribute; if (commandHandlerFilterAttribute != null) { filters.Add(new CommandHandlerFilterAttributeTracer(commandHandlerFilterAttribute, traceWriter)); addedCommandHandlerAttributeTracer = true; } ExceptionFilterAttribute exceptionFilterAttribute = filter as ExceptionFilterAttribute; if (exceptionFilterAttribute != null) { filters.Add(new ExceptionFilterAttributeTracer(exceptionFilterAttribute, traceWriter)); addedExceptionAttributeTracer = true; } EventHandlerFilterAttribute eventHandlerFilterAttribute = filter as EventHandlerFilterAttribute; if (eventHandlerFilterAttribute != null) { filters.Add(new EventHandlerFilterAttributeTracer(eventHandlerFilterAttribute, traceWriter)); addedEventHandlerAttributeTracer = true; } // Do not add an IHandlerFilter tracer if we already added an HandlerFilterAttribute tracer ICommandHandlerFilter commandHandlerFilter = filter as ICommandHandlerFilter; if (commandHandlerFilter != null && !addedCommandHandlerAttributeTracer) { filters.Add(new CommandHandlerFilterTracer(commandHandlerFilter, traceWriter)); } // Do not add an IExceptionFilter tracer if we already added an ExceptoinFilterAttribute tracer IExceptionFilter exceptionFilter = filter as IExceptionFilter; if (exceptionFilter != null && !addedExceptionAttributeTracer) { filters.Add(new ExceptionFilterTracer(exceptionFilter, traceWriter)); } // Do not add an IEventHandlerFilter tracer if we already added an EventHandlerFilterAttribute tracer IEventHandlerFilter eventHandlerFilter = filter as IEventHandlerFilter; if (eventHandlerFilter != null && !addedEventHandlerAttributeTracer) { filters.Add(new EventHandlerFilterTracer(eventHandlerFilter, traceWriter)); } if (filters.Count == 0) { filters.Add(new FilterTracer(filter, traceWriter)); } return(filters); }
public static IEnumerable <IFilter> CreateFilterTracers(IFilter filter, ITraceWriter traceWriter) { List <IFilter> filters = new List <IFilter>(); bool addedActionAttributeTracer = false; bool addedAuthorizationAttributeTracer = false; bool addedExceptionAttributeTracer = false; ActionFilterAttribute actionFilterAttribute = filter as ActionFilterAttribute; if (actionFilterAttribute != null) { filters.Add(new ActionFilterAttributeTracer(actionFilterAttribute, traceWriter)); addedActionAttributeTracer = true; } AuthorizationFilterAttribute authorizationFilterAttribute = filter as AuthorizationFilterAttribute; if (authorizationFilterAttribute != null) { filters.Add(new AuthorizationFilterAttributeTracer(authorizationFilterAttribute, traceWriter)); addedAuthorizationAttributeTracer = true; } ExceptionFilterAttribute exceptionFilterAttribute = filter as ExceptionFilterAttribute; if (exceptionFilterAttribute != null) { filters.Add(new ExceptionFilterAttributeTracer(exceptionFilterAttribute, traceWriter)); addedExceptionAttributeTracer = true; } // Do not add an IActionFilter tracer if we already added an ActionFilterAttribute tracer IActionFilter actionFilter = filter as IActionFilter; if (actionFilter != null && !addedActionAttributeTracer) { filters.Add(new ActionFilterTracer(actionFilter, traceWriter)); } // Do not add an IAuthorizationFilter tracer if we already added an AuthorizationFilterAttribute tracer IAuthorizationFilter authorizationFilter = filter as IAuthorizationFilter; if (authorizationFilter != null && !addedAuthorizationAttributeTracer) { filters.Add(new AuthorizationFilterTracer(authorizationFilter, traceWriter)); } // Do not add an IExceptionFilter tracer if we already added an ExceptoinFilterAttribute tracer IExceptionFilter exceptionFilter = filter as IExceptionFilter; if (exceptionFilter != null && !addedExceptionAttributeTracer) { filters.Add(new ExceptionFilterTracer(exceptionFilter, traceWriter)); } if (filters.Count == 0) { filters.Add(new FilterTracer(filter, traceWriter)); } return(filters); }
public ExceptionFilterAttributeTracer(ExceptionFilterAttribute innerFilter, ITraceWriter traceStore) { _innerFilter = innerFilter; _traceStore = traceStore; }
public PipelineExceptionFilterAttribute Add(ExceptionFilterAttribute filter) { filters.Add(filter); return(this); }
public static void AddErrorHandling(this MvcOptions options, ExceptionFilterAttribute exceptionFilterAttribute) { options.Filters.Add(exceptionFilterAttribute); }
public ConfigureExceptionHandling WithWebApiExceptionFilter(ExceptionFilterAttribute filter) { _exceptionFilters.Add(filter); return(this); }