using System;
using System.IO;
using System.Linq;
using System.Web.Mvc;
using NzbDrone.Common;
namespace NzbDrone.Web.Helpers
{
public static class HtmlIncludeExtentions
{
private static string _versionString;
private static bool _isProduction;
static HtmlIncludeExtentions()
{
_versionString = new EnviromentProvider().Version.ToString().Replace('.', '_');
_isProduction = EnviromentProvider.IsProduction;
}
public static MvcHtmlString IncludeScript(this HtmlHelper helper, string filename)
{
var relativePath = "/Scripts/" + filename;
VerifyFile(helper, relativePath);
return MvcHtmlString.Create(String.Format("", relativePath, _versionString));
}
public static MvcHtmlString IncludeCss(this HtmlHelper helper, string filename)
{
var relativePath = "/Content/" + filename;
VerifyFile(helper, relativePath);
return MvcHtmlString.Create(String.Format("", relativePath, _versionString));
}
private static void VerifyFile(HtmlHelper helper, string filename)
{
if (!_isProduction)
{
var path = helper.ViewContext.RequestContext.HttpContext.Server.MapPath(filename);
if (!File.Exists(path))
{
throw new FileNotFoundException("static file not found " + path, path);
}
}
}
}
}