public static WebServer GetConfiguredServer(string settingsCategory = null, IRazorEngine razorEngineCS = null, IRazorEngine razorEngineVB = null)
{
lock (typeof(WebServer))
{
if (string.IsNullOrWhiteSpace(settingsCategory))
settingsCategory = "systemSettings";
return s_configuredServers.GetOrAdd(settingsCategory, category =>
{
// Get configured template path
CategorizedSettingsElementCollection settings = ConfigurationFile.Current.Settings[category];
settings.Add("WebRootPath", "wwwroot", "The root path for the hosted web server files. Location will be relative to install folder if full path is not specified.");
settings.Add("ClientCacheEnabled", "true", "Determines if cache control is enabled for web server when rendering content to browser clients.");
settings.Add("MinifyJavascript", "true", "Determines if minification should be applied to rendered Javascript files.");
settings.Add("MinifyStyleSheets", "true", "Determines if minification should be applied to rendered CSS files.");
settings.Add("UseMinifyInDebug", "false", "Determines if minification should be applied when running a Debug build.");
return new WebServer(FilePath.GetAbsolutePath(settings["WebRootPath"].Value), razorEngineCS, razorEngineVB)
{
ClientCacheEnabled = settings["ClientCacheEnabled"].Value.ParseBoolean(),
MinifyJavascript = settings["MinifyJavascript"].Value.ParseBoolean(),
MinifyStyleSheets = settings["MinifyStyleSheets"].Value.ParseBoolean(),
UseMinifyInDebug = settings["UseMinifyInDebug"].Value.ParseBoolean()
};
});
}
}