/// <summary> /// Ins the cache. /// </summary> /// <returns><c>true</c>, if cache was ined, <c>false</c> otherwise.</returns> /// <param name="assetbundlename">Assetbundlename.</param> internal bool InCache(string assetbundlename) { return(BundleCache.ContainsKey(assetbundlename)); }
private string RenderRelease(string key, string renderTo, IRenderer renderer) { if (!bundleCache.ContainsKey(key)) { lock (bundleCache) { if (!bundleCache.ContainsKey(key)) { string compressedCss; string hash = null; bool hashInFileName = false; dependentFiles.Clear(); string outputFile = ResolveAppRelativePathToFileSystem(renderTo); List <string> files = GetFiles(GetFilePaths(cssFiles)); files.AddRange(GetFiles(GetEmbeddedResourcePaths(embeddedResourceCssFiles))); dependentFiles.AddRange(files); if (renderTo.Contains("#")) { hashInFileName = true; compressedCss = CompressCss(outputFile, files, cssCompressorInstance, appendHashForAssets); hash = hasher.GetHash(compressedCss); renderTo = renderTo.Replace("#", hash); outputFile = outputFile.Replace("#", hash); } if (renderOnlyIfOutputFileMissing && FileExists(outputFile)) { compressedCss = ReadFile(outputFile); } else { compressedCss = CompressCss(outputFile, files, cssCompressorInstance, appendHashForAssets); renderer.Render(compressedCss, outputFile); } if (hash == null) { hash = hasher.GetHash(compressedCss); } string renderedCssTag; if (hashInFileName) { renderedCssTag = FillTemplate(ExpandAppRelativePath(renderTo)); } else { string path = ExpandAppRelativePath(renderTo); if (path.Contains("?")) { renderedCssTag = FillTemplate(path + "&" + hashQueryStringKeyName + "=" + hash); } else { renderedCssTag = FillTemplate(path + "?" + hashQueryStringKeyName + "=" + hash); } } renderedCssTag = String.Concat(GetFilesForRemote(), renderedCssTag); bundleCache.AddToCache(key, renderedCssTag, dependentFiles); } } } return(bundleCache.GetContent(key)); }