public static HtmlString RenderJavaScript(JavaScriptLoadBehaviour behaviour, params string[] fileNames) { StringBuilder stringBuilder = new StringBuilder(); HttpContext context = HttpContext.Current; string behaviourParam = behaviour == JavaScriptLoadBehaviour.Inline ? string.Empty : behaviour.ToString().ToLowerInvariant(); // Minify on release. if (!context.IsDebuggingEnabled) { string fileContent = AsyncHelper.RunSync(() => JavaScriptHandler.ProcessJavascriptCrunchAsync(context, true, fileNames)); string fileName = $"{fileContent.ToMd5Fingerprint()}.js"; return (new HtmlString( string.Format( JavaScriptPhysicalFileTemplate, AsyncHelper.RunSync( () => ResourceHelper.CreateResourcePhysicalFileAsync(fileName, fileContent)), behaviourParam))); } // Render them separately for debug mode. foreach (string name in fileNames) { string currentName = name; string fileContent = AsyncHelper.RunSync(() => JavaScriptHandler.ProcessJavascriptCrunchAsync(context, false, currentName)); string fileName = $"{Path.GetFileNameWithoutExtension(name)}{fileContent.ToMd5Fingerprint()}.js"; stringBuilder.AppendFormat( JavaScriptPhysicalFileTemplate, AsyncHelper.RunSync(() => ResourceHelper.CreateResourcePhysicalFileAsync(fileName, fileContent)), behaviourParam); stringBuilder.AppendLine(); } return(new HtmlString(stringBuilder.ToString())); }
public static HtmlString RenderJavaScript(JavaScriptLoadBehaviour behaviour, params string[] fileNames) { StringBuilder stringBuilder = new StringBuilder(); HttpContext context = HttpContext.Current; string behaviourParam = behaviour == JavaScriptLoadBehaviour.Inline ? string.Empty : behaviour.ToString().ToLowerInvariant(); // Minify on release. if (!context.IsDebuggingEnabled) { string fileContent = AsyncHelper.RunSync(() => JavaScriptHandler.ProcessJavascriptCrunchAsync(context, true, fileNames)); string fileName = $"{fileContent.ToMd5Fingerprint()}.js"; return new HtmlString( string.Format( JavaScriptPhysicalFileTemplate, AsyncHelper.RunSync( () => ResourceHelper.CreateResourcePhysicalFileAsync(fileName, fileContent)), behaviourParam)); } // Render them separately for debug mode. foreach (string name in fileNames) { string currentName = name; string fileContent = AsyncHelper.RunSync(() => JavaScriptHandler.ProcessJavascriptCrunchAsync(context, false, currentName)); string fileName = $"{Path.GetFileNameWithoutExtension(name)}{fileContent.ToMd5Fingerprint()}.js"; stringBuilder.AppendFormat( JavaScriptPhysicalFileTemplate, AsyncHelper.RunSync(() => ResourceHelper.CreateResourcePhysicalFileAsync(fileName, fileContent)), behaviourParam); stringBuilder.AppendLine(); } return new HtmlString(stringBuilder.ToString()); }