コード例 #1
0
        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);
                    };
        }
コード例 #2
0
ファイル: JsonDispatcher.cs プロジェクト: vip32/Xtricate
        public Task Dispatch(RequestDispatcherContext context)
        {
            var owinContext = new OwinContext(context.OwinEnvironment);

            var serialized = JsonConvert.SerializeObject(CreateResponseObject(owinContext), _settings);
            owinContext.Response.ContentType = "application/json";
            owinContext.Response.WriteAsync(serialized);

            return Task.FromResult(true);
        }
コード例 #3
0
 public Task Dispatch(RequestDispatcherContext context)
 {
     // execute the template
     var resource = _resourceFunc(context.UriMatch);
     return resource.Dispatch(context);
 }