public void RegisterResource(string resourceName, string resourcePath, ResourceRegistrationType resourceRegistrationType)
        {
            if (string.IsNullOrEmpty(resourceName))
            {
                throw new Exception("Can't register a resource with empty name");
            }

            var resource =
                _resourceRegistrations[resourceRegistrationType].FirstOrDefault(x => x.ResourceName == resourceName);

            if (resource == null)
            {
                resource = new Resource()
                {
                    ResourceName     = resourceName,
                    ResourcePath     = resourcePath,
                    RegistrationType = resourceRegistrationType,
                    PlacementType    =
                        resourceRegistrationType == ResourceRegistrationType.Script
                            ? ResourcePlacementType.BeforeEndBodyTag
                            : ResourcePlacementType.HeadTag,
                    Enqueued = false,
                    Rendered = false
                };
                _resourceRegistrations[resourceRegistrationType].Add(resource);
            }
            else
            {
                resource.ResourcePath = resourcePath;
            }
        }
        private string RenderResource(ResourceRegistrationType registrationType,
                                      ResourcePlacementType placementType, bool includeAsBundle = false)
        {
            var resourcesEnqueued =
                _resourceRegistrations[registrationType].Where(x => x.Enqueued && x.PlacementType == placementType)
                .ToList();

            //set all as unrendered because we are using singleton instance
            foreach (var resource in resourcesEnqueued)
            {
                resource.Rendered = false;
            }

            var renderFormat = registrationType == ResourceRegistrationType.Style
                ? "<link href='{0}' rel='stylesheet' type='text/css' />"
                : "<script src='{0}' type='text/javascript'></script>";
            var renderBuilder = new StringBuilder();

            foreach (var resource in resourcesEnqueued)
            {
                renderBuilder.Append(_RenderSingleResource(resource, renderFormat));
            }

            return(renderBuilder.ToString());
        }
        public void RegisterResource(string resourceName, string resourcePath, ResourceRegistrationType resourceRegistrationType)
        {
            if (string.IsNullOrEmpty(resourceName))
                throw new mobSocialException("Can't register a resource with empty name");

            var resource =
                _resourceRegistrations[resourceRegistrationType].FirstOrDefault(x => x.ResourceName == resourceName);

            if (resource == null)
            {
                resource = new Resource()
                {
                    ResourceName = resourceName,
                    ResourcePath = resourcePath,
                    RegistrationType = resourceRegistrationType,
                    PlacementType =
                        resourceRegistrationType == ResourceRegistrationType.Script
                            ? ResourcePlacementType.BeforeEndBodyTag
                            : ResourcePlacementType.HeadTag,
                    Enqueued = false,
                    Rendered = false
                };
                _resourceRegistrations[resourceRegistrationType].Add(resource);
            }
            else
            {
                resource.ResourcePath = resourcePath;
            }
        }
        private void EnqueueResource(string resourceName, ResourceRegistrationType resourceRegistrationType, ResourcePlacementType placementType, IList <Resource> dependsOn)
        {
            var registeredResource =
                _resourceRegistrations[resourceRegistrationType].FirstOrDefault(x => x.ResourceName == resourceName);

            if (registeredResource == null)
            {
                //may be this resource will be registered later, do it now
                RegisterResource(resourceName, string.Empty, resourceRegistrationType);

                //query again
                registeredResource =
                    _resourceRegistrations[resourceRegistrationType].First(x => x.ResourceName == resourceName);
            }
            registeredResource.PlacementType = placementType;
            registeredResource.Enqueued      = true;
            if (dependsOn != null)
            {
                registeredResource.DependsOn = dependsOn;
            }
        }
Exemple #5
0
 public static void RegisterResource(this HtmlHelper htmlHelper, string resourceName, string resourcePath, ResourceRegistrationType registrationType)
 {
     mobSocialEngine.ActiveEngine.Resolve <IPageGenerator>().RegisterResource(resourceName, resourcePath, registrationType);
 }
        private string RenderResource(ResourceRegistrationType registrationType,
            ResourcePlacementType placementType, bool includeAsBundle = false)
        {
            var resourcesEnqueued =
                _resourceRegistrations[registrationType].Where(x => x.Enqueued && x.PlacementType == placementType)
                    .ToList();

            //set all as unrendered because we are using singleton instance
            foreach (var resource in resourcesEnqueued)
                resource.Rendered = false;

            var renderFormat = registrationType == ResourceRegistrationType.Style
                ? "<link href='{0}' rel='stylesheet' type='text/css' />"
                : "<script src='{0}' type='text/javascript'></script>";
            var renderBuilder = new StringBuilder();
            foreach (var resource in resourcesEnqueued)
            {
               renderBuilder.Append(_RenderSingleResource(resource, renderFormat));
            }

            return renderBuilder.ToString();
        }
        private void EnqueueResource(string resourceName, ResourceRegistrationType resourceRegistrationType, ResourcePlacementType placementType, IList<Resource> dependsOn)
        {
            var registeredResource =
                _resourceRegistrations[resourceRegistrationType].FirstOrDefault(x => x.ResourceName == resourceName);
            if (registeredResource == null)
            {
                //may be this resource will be registered later, do it now
                RegisterResource(resourceName, string.Empty, resourceRegistrationType);

                //query again
                registeredResource =
                _resourceRegistrations[resourceRegistrationType].First(x => x.ResourceName == resourceName);
            }
            registeredResource.PlacementType = placementType;
            registeredResource.Enqueued = true;
            if(dependsOn != null)
                registeredResource.DependsOn = dependsOn;
        }
 public static void RegisterResource(this HtmlHelper htmlHelper, string resourceName, string resourcePath, ResourceRegistrationType registrationType)
 {
     mobSocialEngine.ActiveEngine.Resolve<IPageGenerator>().RegisterResource(resourceName, resourcePath, registrationType);
 }
 public static void RegisterResource(this HtmlHelper htmlHelper, string resourceName, string resourcePath, ResourceRegistrationType registrationType)
 {
     DependencyResolver.Resolve <IPageGenerator>().RegisterResource(resourceName, resourcePath, registrationType);
 }