This repository was archived by the owner on Dec 14, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
This repository was archived by the owner on Dec 14, 2018. It is now read-only.
Add a new filter type for pages #6331
Copy link
Copy link
Closed
Description
Something like:
public delegate Task<PageHandlerExecutedContext> PageExecutionDelegate();
public class PageHandlerSelectedContext : FilterContext
{
public virtual new CompiledPageActionDescriptor ActionDescriptor { get; }
public virtual HandlerMethodDescriptor HandlerMethod { get; set; }
public virtual IActionResult Result { get; set; }
public virtual object HandlerInstance { get; }
}
public class PageHandlerExecutingContext : FilterContext
{
public virtual new CompiledPageActionDescriptor ActionDescriptor { get; }
public virtual HandlerMethodDescriptor HandlerMethod { get; }
public virtual IActionResult Result { get; set; }
public virtual IDictionary<string, object> HandlerArguments { get; }
public virtual object HandlerInstance { get; }
}
public class PageHandlerExecutedContext : FilterContext
{
public virtual new CompiledPageActionDescriptor ActionDescriptor { get; }
public virtual HandlerMethodDescriptor HandlerMethod { get; }
public virtual IActionResult Result { get; set; }
public virtual object HandlerInstance { get; }
public virtual bool Canceled { get; set; }
public virtual Exception Exception { get; set; }
public virtual ExceptionDispatchInfo ExceptionDispatchInfo { get; set; }
public virtual bool ExceptionHandled { get; set; }
}
public interface IPageFilter : IFilterMetadata
{
void OnPageHandlerSelected(PageHandlerSelectedContext context);
void OnPageHandlerExecuting(PageHandlerExecutingContext context);
void OnPageHandlerExecuted(PageHandlerExecutedContext context);
}
public interface IAsyncPageFilter : IFilterMetadata
{
void OnPageHandlerSelection(PageHandlerSelectedContext context);
void OnPageHandlerExecution(PageHandlerExecutingContext context, PageHandlerExecutionDelegate next);
}
Reactions are currently unavailable