Beispiel #1
0
        public async Task Dispatch(RequestDispatcherContext context)
        {
            var owinContext = new OwinContext(context.OwinEnvironment);
            var form = await owinContext.Request.ReadFormAsync();
            var requestedMetrics = new HashSet<string>(form.GetValues("metrics[]") ?? new string[0]);

            var page = new StubPage();
            page.Assign(context);

            var metrics = DashboardMetrics.GetMetrics().Where(x => requestedMetrics.Contains(x.Name));
            var result = new Dictionary<string, Metric>();

            foreach (var metric in metrics)
            {
                var value = metric.Func(page);
                result.Add(metric.Name, value);
            }

            var settings = new JsonSerializerSettings
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver(),
                Converters = new JsonConverter[]{ new StringEnumConverter { CamelCaseText = true } }
            };
            var serialized = JsonConvert.SerializeObject(result, settings);

            owinContext.Response.ContentType = "application/json";
            await owinContext.Response.WriteAsync(serialized);
        }
        public override Task Invoke(IOwinContext context)
        {
            var dispatcher = _routes.FindDispatcher(context.Request.Path.Value);
            
            if (dispatcher == null)
            {
                return Next.Invoke(context);
            }

            foreach (var filter in _authorizationFilters)
            {
                if (!filter.Authorize(context.Environment))
                {
                    context.Response.StatusCode = (int) HttpStatusCode.Unauthorized;
                    return Task.FromResult(false);
                }
            }

            var dispatcherContext = new RequestDispatcherContext(
                _appPath,
                _storage,
                context.Environment,
                dispatcher.Item2);

            return dispatcher.Item1.Dispatch(dispatcherContext);
        }
        public override Task Invoke(IOwinContext context)
        {
            var dispatcher = _routes.FindDispatcher(context.Request.Path.Value);

            if (dispatcher == null)
            {
                return(Next.Invoke(context));
            }

            foreach (var filter in _authorizationFilters)
            {
                if (!filter.Authorize(context.Environment))
                {
                    context.Response.StatusCode = (int)HttpStatusCode.Unauthorized;
                    return(Task.FromResult(false));
                }
            }

            var dispatcherContext = new RequestDispatcherContext(
                _storage,
                context.Environment,
                dispatcher.Item2);

            return(dispatcher.Item1.Dispatch(dispatcherContext));
        }
Beispiel #4
0
        public async Task Dispatch(RequestDispatcherContext context)
        {
            var owinContext = new OwinContext(context.OwinEnvironment);
            var form        = await owinContext.ReadFormSafeAsync();

            var requestedMetrics = new HashSet <string>(form.GetValues("metrics[]") ?? new string[0]);

            var page = new StubPage();

            page.Assign(context);

            var metrics = DashboardMetrics.GetMetrics().Where(x => requestedMetrics.Contains(x.Name));
            var result  = new Dictionary <string, Metric>();

            foreach (var metric in metrics)
            {
                var value = metric.Func(page);
                result.Add(metric.Name, value);
            }

            var settings = new JsonSerializerSettings
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver(),
                Converters       = new JsonConverter[] { new StringEnumConverter {
                                                             CamelCaseText = true
                                                         } }
            };
            var serialized = JsonConvert.SerializeObject(result, settings);

            owinContext.Response.ContentType = "application/json";
            await owinContext.Response.WriteAsync(serialized);
        }
        public Task Dispatch(RequestDispatcherContext context)
        {
            var owinContext = new OwinContext(context.OwinEnvironment);
            owinContext.Response.ContentType = "text/html";

            var page = _pageFunc(context.UriMatch);
            page.Assign(context);

            return owinContext.Response.WriteAsync(page.ToString());
        }
Beispiel #6
0
        public Task Dispatch(RequestDispatcherContext context)
        {
            var owinContext = new OwinContext(context.OwinEnvironment);

            owinContext.Response.ContentType = _contentType;
            owinContext.Response.Expires     = DateTime.Now.AddYears(1);

            WriteResponse(owinContext.Response);

            return(Task.FromResult(true));
        }
        public Task Dispatch(RequestDispatcherContext context)
        {
            var owinContext = new OwinContext(context.OwinEnvironment);

            owinContext.Response.ContentType = _contentType;
            owinContext.Response.Expires = DateTime.Now.AddYears(1);

            WriteResponse(owinContext.Response);

            return Task.FromResult(true);
        }
Beispiel #8
0
        public Task Dispatch(RequestDispatcherContext context)
        {
            var owinContext = new OwinContext(context.OwinEnvironment);

            owinContext.Response.ContentType = "text/html";

            var page = _pageFunc(context.UriMatch);

            page.Assign(context);

            return(owinContext.Response.WriteAsync(page.ToString()));
        }
Beispiel #9
0
        public Task Dispatch(RequestDispatcherContext context)
        {
            var owinContext = new OwinContext(context.OwinEnvironment);

            owinContext.Response.ContentType = "text/html";

            var page = _pageFunc(context.UriMatch);
            page.Request = owinContext.Request;
            page.Response = owinContext.Response;
            page.Storage = context.JobStorage;

            return owinContext.Response.WriteAsync(page.TransformText());
        }
        public Task Dispatch(RequestDispatcherContext context)
        {
            var owinContext = new OwinContext(context.OwinEnvironment);

            owinContext.Response.ContentType = "text/html";

            var page = _pageFunc(context.UriMatch);

            page.Request  = owinContext.Request;
            page.Response = owinContext.Response;
            page.Storage  = context.JobStorage;

            return(owinContext.Response.WriteAsync(page.TransformText()));
        }
Beispiel #11
0
        public Task Dispatch(RequestDispatcherContext context)
        {
            var owinContext = new OwinContext(context.OwinEnvironment);

            var monitoring = context.JobStorage.GetMonitoringApi();
            var response   = monitoring.GetStatistics();

            var settings = new JsonSerializerSettings
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            };
            var serialized = JsonConvert.SerializeObject(response, settings);

            owinContext.Response.ContentType = "application/json";
            return(owinContext.Response.WriteAsync(serialized));
        }
Beispiel #12
0
        public Task Dispatch(RequestDispatcherContext context)
        {
            var owinContext = new OwinContext(context.OwinEnvironment);

            var monitoring = context.JobStorage.GetMonitoringApi();
            var response = monitoring.GetStatistics();

            var settings = new JsonSerializerSettings
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            };
            var serialized = JsonConvert.SerializeObject(response, settings);

            owinContext.Response.ContentType = "application/json";
            return owinContext.Response.WriteAsync(serialized);
        }
Beispiel #13
0
        internal void Assign(RequestDispatcherContext context)
        {
            var owinContext = new OwinContext(context.OwinEnvironment);

            Request  = owinContext.Request;
            Response = owinContext.Response;
            Storage  = context.JobStorage;
            AppPath  = context.AppPath;
            Url      = new UrlHelper(context.OwinEnvironment);

            _statisticsLazy = new Lazy <StatisticsDto>(() =>
            {
                var monitoring = Storage.GetMonitoringApi();
                return(monitoring.GetStatistics());
            });
        }
Beispiel #14
0
        public static MidFunc UseHangfireDashboard(
            [NotNull] DashboardOptions options,
            [NotNull] JobStorage storage,
            [NotNull] RouteCollection routes)
        {
            if (options == null)
            {
                throw new ArgumentNullException("options");
            }
            if (storage == null)
            {
                throw new ArgumentNullException("storage");
            }
            if (routes == null)
            {
                throw new ArgumentNullException("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.AppPath,
                    storage,
                    context.Environment,
                    dispatcher.Item2);

                return dispatcher.Item1.Dispatch(dispatcherContext);
            });
        }
        public async Task Dispatch(RequestDispatcherContext context)
        {
            var owinContext = new OwinContext(context.OwinEnvironment);

            var form = await owinContext.ReadFormSafeAsync();
            var jobIds = form.GetValues("jobs[]");

            if (jobIds == null)
            {
                owinContext.Response.StatusCode = 422;
                return;
            }

            foreach (var jobId in jobIds)
            {
                _command(context, jobId);
            }

            owinContext.Response.StatusCode = (int)HttpStatusCode.NoContent;
        }
Beispiel #16
0
        public Task Dispatch(RequestDispatcherContext context)
        {
            var owinContext = new OwinContext(context.OwinEnvironment);

            if (owinContext.Request.Method != WebRequestMethods.Http.Post)
            {
                owinContext.Response.StatusCode = (int)HttpStatusCode.MethodNotAllowed;
                return Task.FromResult(false);
            }

            if (_command(context))
            {
                owinContext.Response.StatusCode = (int)HttpStatusCode.NoContent;
            }
            else
            {
                owinContext.Response.StatusCode = 422;
            }

            return Task.FromResult(true);
        }
Beispiel #17
0
        public Task Dispatch(RequestDispatcherContext context)
        {
            var owinContext = new OwinContext(context.OwinEnvironment);

            if (owinContext.Request.Method != WebRequestMethods.Http.Post)
            {
                owinContext.Response.StatusCode = (int)HttpStatusCode.MethodNotAllowed;
                return(Task.FromResult(false));
            }

            if (_command(context))
            {
                owinContext.Response.StatusCode = (int)HttpStatusCode.NoContent;
            }
            else
            {
                owinContext.Response.StatusCode = 422;
            }

            return(Task.FromResult(true));
        }
Beispiel #18
0
        public async Task Dispatch(RequestDispatcherContext context)
        {
            var owinContext = new OwinContext(context.OwinEnvironment);

            var form = await owinContext.Request.ReadFormAsync();

            var jobIds = form.GetValues("jobs[]");

            if (jobIds == null)
            {
                owinContext.Response.StatusCode = 422;
                return;
            }

            foreach (var jobId in jobIds)
            {
                _command(context, jobId);
            }

            owinContext.Response.StatusCode = (int)HttpStatusCode.NoContent;
        }
        public static MidFunc UseHangfireDashboard(
            [NotNull] DashboardOptions options, 
            [NotNull] JobStorage storage, 
            [NotNull] RouteCollection routes)
        {
            if (options == null) throw new ArgumentNullException("options");
            if (storage == null) throw new ArgumentNullException("storage");
            if (routes == null) throw new ArgumentNullException("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.AppPath,
                        storage,
                        context.Environment,
                        dispatcher.Item2);

                    return dispatcher.Item1.Dispatch(dispatcherContext);
                };
        }
Beispiel #20
0
 public CommandDispatcher(Func <RequestDispatcherContext, bool> command)
 {
     _command = context => command(RequestDispatcherContext.FromDashboardContext(context));
 }
Beispiel #21
0
        internal void Assign(RequestDispatcherContext context)
        {
            var owinContext = new OwinContext(context.OwinEnvironment);

            Request = owinContext.Request;
            Response = owinContext.Response;
            Storage = context.JobStorage;
            AppPath = context.AppPath;
            Url = new UrlHelper(context.OwinEnvironment);

            _statisticsLazy = new Lazy<StatisticsDto>(() =>
            {
                var monitoring = Storage.GetMonitoringApi();
                return monitoring.GetStatistics();
            });
        }
 public BatchCommandDispatcher(Action <RequestDispatcherContext, string> command)
 {
     _command = (context, jobId) => command(RequestDispatcherContext.FromDashboardContext(context), jobId);
 }
Beispiel #23
0
 public Task Dispatch(DashboardContext context)
 {
     return(_dispatcher.Dispatch(RequestDispatcherContext.FromDashboardContext(context)));
 }