public void Process(IList<IAsset> Assets, BundleContext Context, BundleResponse Response)
{
foreach (IFilter Filter in Filters.Where(x => x.TimeToRun == RunTime.PreTranslate))
{
Assets = Filter.Filter(Assets);
}
foreach (ITranslator Translator in Translators)
{
Assets = Translator.Translate(Assets);
}
foreach (RunTime Item in RunOrder)
{
foreach (IFilter Filter in Filters.Where(x => x.TimeToRun == Item))
{
Assets = Filter.Filter(Assets);
}
}
string Content = Assets.OrderBy(x => x.Path).ToString(x => x.ToString(), "");
foreach (IContentFilter Filter in ContentFilters)
{
Content = Filter.Filter(Content);
}
var Files = new System.Collections.Generic.List<BundleFile>();
foreach (IAsset Asset in Assets)
{
if (Asset.Path.StartsWith("~", StringComparison.Ordinal) || Asset.Path.StartsWith("/", StringComparison.Ordinal))
{
Files.Add(new BundleFile(Asset.Path, new VirtualFileHack(Asset.Path)));
Files.Add(Asset.Included.Where(x => x.Path.StartsWith("~", StringComparison.Ordinal) || x.Path.StartsWith("/", StringComparison.Ordinal)).Select(x => new BundleFile(x.Path, new VirtualFileHack(x.Path))));
}
}
Response.Content = Content;
Response.Files = Files.OrderBy(x => x.VirtualFile.VirtualPath);
Response.ContentType = Assets.First().Type == AssetType.CSS ? "text/css" : "text/javascript";
Response.Cacheability = HttpCacheability.ServerAndPrivate;
}