private static void Register(IApplicationBuilder builder) { builder.Use(async(context, next) => { var result = await SimplifyWebRequestMiddleware.Invoke(context); if (result == RequestHandlingStatus.RequestWasUnhandled) { await next.Invoke(); } }); }
/// <summary> /// Adds Simplify.Web to the OWIN pipeline as a non-terminal middleware without bootstrapper registrations /// </summary> /// <param name="builder">The OWIN builder.</param> /// <returns></returns> public static IApplicationBuilder UseSimplifyWebNonTerminalWithoutRegistrations(this IApplicationBuilder builder) { try { TerminalMiddleware = false; Register(builder); return(builder); } catch (Exception e) { SimplifyWebRequestMiddleware.ProcessOnException(e); throw; } }
/// <summary> /// Adds Simplify.Web to the OWIN pipeline as a terminal middleware without bootstrapper registrations (useful when you want to control bootstrapper registrations manually) /// </summary> /// <param name="builder">The builder.</param> /// <returns></returns> public static IApplicationBuilder UseSimplifyWebWithoutRegistrations(this IApplicationBuilder builder) { try { ControllersRequestHandler.TerminalMiddleware = true; RegisterAsTerminal(builder); return(builder); } catch (Exception e) { SimplifyWebRequestMiddleware.ProcessOnException(e); throw; } }
/// <summary> /// Performs Simplify.Web bootstrapper registrations and adds Simplify.Web to the OWIN pipeline as a non-terminal middleware /// </summary> /// <param name="builder">The OWIN builder.</param> /// <returns></returns> public static IApplicationBuilder UseSimplifyWebNonTerminal(this IApplicationBuilder builder) { try { TerminalMiddleware = false; BootstrapperFactory.CreateBootstrapper().Register(); Register(builder); return(builder); } catch (Exception e) { SimplifyWebRequestMiddleware.ProcessOnException(e); throw; } }
/// <summary> /// Performs Simplify.Web bootstrapper registrations and adds Simplify.Web to the OWIN pipeline as a terminal middleware /// </summary> /// <param name="builder">The OWIN builder.</param> /// <returns></returns> public static IApplicationBuilder UseSimplifyWeb(this IApplicationBuilder builder) { try { ControllersRequestHandler.TerminalMiddleware = true; BootstrapperFactory.CreateBootstrapper().Register(); RegisterAsTerminal(builder); return(builder); } catch (Exception e) { SimplifyWebRequestMiddleware.ProcessOnException(e); throw; } }
private static void RegisterAsTerminal(IApplicationBuilder builder) { builder.Run(async(context) => await SimplifyWebRequestMiddleware.Invoke(context).Task); }