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 string _RenderSingleResource(Resource resource, string renderFormat) { if (resource.Rendered) return string.Empty; var renderBuilder = new StringBuilder(); if (resource.DependsOn != null) { //first render the dependent ones foreach (var r in resource.DependsOn) { renderBuilder.Append(_RenderSingleResource(r, renderFormat)); } } if (!string.IsNullOrEmpty(resource.ResourcePath)) { var resourcePath = WebHelper.GetUrlFromPath(resource.ResourcePath); renderBuilder.Append(Environment.NewLine + string.Format(renderFormat, resourcePath)); } //mark current resource as rendered resource.Rendered = true; return renderBuilder.ToString(); }