Exemplo n.º 1
0
        public IEnumerable <string> Register(HttpContextBase httpContext, IEnumerable <ClientScriptResource> resources)
        {
            var normalizedResources = resources.Select(resource => NormalizeResource(httpContext, resource));

            // Non-deferred registrations are rendered immediately and not registered for deferred rendering.
            var deferredRenderingEnabled = AppConfigProvider.GetAppConfigValue <bool>(DeferredRenderingEnabledAppConfigName);

            if (!deferredRenderingEnabled)
            {
                return(ClientScriptResourceHandler.Render(normalizedResources, RenderMode.Immediate));
            }

            var resourceCollection = GetOrderedResourceCollection(httpContext);

            foreach (var resource in normalizedResources)
            {
                var index = (int?)httpContext.Items[HttpContextIndexKey] ?? 0;
                if (resourceCollection.Add(new OrderedClientScriptResource(index, resource)))
                {
                    httpContext.Items[HttpContextIndexKey] = index + 1;
                }
            }

            return(Enumerable.Empty <string>());
        }