public static MidFunc UseDashboard( DashboardOptions options, RouteCollection routes) { if (options == null) throw new ArgumentNullException(nameof(options)); if (routes == null) throw new ArgumentNullException(nameof(routes)); return next => env => { var context = new OwinContext(env); var dispatcher = routes.FindDispatcher(context.Request.Path.Value); if (dispatcher == null) { return next(env); } if (options.AuthorizationFilters.Any(filter => !filter.Authorize(context.Environment))) { context.Response.StatusCode = (int) HttpStatusCode.Unauthorized; return Task.FromResult(false); } var dispatcherContext = new RequestDispatcherContext( options, options.Name, options.AppPath, context.Environment, dispatcher.Item2); return dispatcher.Item1.Dispatch(dispatcherContext); }; }
public static BuildFunc UseDashboard( this BuildFunc builder, DashboardOptions options, RouteCollection routes) { if (builder == null) throw new ArgumentNullException(nameof(builder)); if (options == null) throw new ArgumentNullException(nameof(options)); if (routes == null) throw new ArgumentNullException(nameof(routes)); builder(_ => UseDashboard(options, routes)); return builder; }
public static IAppBuilder UseDashboard( this IAppBuilder builder, string pathMatch = null, DashboardOptions options = null, RouteCollection routes = null) { if (builder == null) throw new ArgumentNullException(nameof(builder)); if (string.IsNullOrEmpty(pathMatch)) pathMatch = "/dashboard"; if (options == null) options = new DashboardOptions(); if (routes == null) routes = new RouteCollectionBuilder().Routes; SignatureConversions.AddConversions(builder); builder.Map(pathMatch, subApp => subApp .UseOwin() .UseDashboard(options, routes)); return builder; }
public static IAppBuilder UseDashboard( this IAppBuilder builder, RouteCollection routes = null) { return builder.UseDashboard(null, null, routes); }