using System.IO;
using System.Web.Hosting;
using System.Web.Optimization;
using dotless.Core.configuration;
using dotless.Core.Input;
namespace ILK.Web.App_Start
{
public class LessTransform : IBundleTransform
{
public void Process(BundleContext context, BundleResponse response)
{
DotlessConfiguration config = new DotlessConfiguration();
config.MinifyOutput = false;
config.ImportAllFilesAsLess = true;
config.CacheEnabled = false;
config.LessSource = typeof(VirtualFileReader);
response.Content = dotless.Core.Less.Parse(response.Content, config);
response.ContentType = "text/css";
}
}
internal sealed class VirtualFileReader : IFileReader
{
public byte[] GetBinaryFileContents(string fileName)
{
fileName = GetFullPath(fileName);
return File.ReadAllBytes(fileName);
}
public string GetFileContents(string fileName)
{
fileName = GetFullPath(fileName);
return File.ReadAllText(fileName);
}
public bool DoesFileExist(string fileName)
{
fileName = GetFullPath(fileName);
return File.Exists(fileName);
}
private static string GetFullPath(string path)
{
return HostingEnvironment.MapPath("~" + path);
}
public bool UseCacheDependencies
{
get { return false; }
}
}
}