public static Func<IHttpHeaders, IHttpContext, Task<JObject>> Get(Configuration config, Resources.ResourceManager resourceMgr)
        {
            return (headers, context) =>
            {
                var result = new JObject();
                var resources = new JArray();

                var resourceSource = resourceMgr.GetRunningResources();
                string resourceFilter;

                if (headers.TryGetByName("resources", out resourceFilter))
                {
                    var resourceNames = resourceFilter.Split(';');

                    resourceSource = resourceSource.Where(r => resourceNames.Contains(r.Name));
                }
                else
                {
                    // add the imports, if any
                    if (config.Imports != null)
                    {
                        var imports = new JArray();

                        config.Imports.ForEach(a => imports.Add(a.ConfigURL));

                        result["imports"] = imports;
                    }
                }

                // generate configuration with our filter function
                resourceSource.GenerateConfiguration(resources, (resource, rObject) =>
                {
                    // get download configuration for this resource
                    var configEntry = resourceMgr.Configuration.GetDownloadConfiguration(resource.Name);

                    if (configEntry != null)
                    {
                        if (!string.IsNullOrWhiteSpace(configEntry.BaseURL))
                        {
                            rObject["fileServer"] = configEntry.BaseURL;
                        }
                    }
                });

                result["resources"] = resources;
                result["fileServer"] = "http://%s/files/";

                result["loadScreen"] = "nui://keks/index.html";

                var source = new TaskCompletionSource<JObject>();
                source.SetResult(result);

                return source.Task;
            };
        }