public AssetManager(IEnumerable<IFilter> Filters, IEnumerable<IContentFilter> ContentFilters, IEnumerable<ITranslator> Translators)
{
Contract.Requires<ArgumentNullException>(Filters != null, "Filters");
Contract.Requires<ArgumentNullException>(ContentFilters != null, "ContentFilters");
Contract.Requires<ArgumentNullException>(Translators != null, "Translators");
this.Filters = Filters;
this.ContentFilters = ContentFilters;
this.Translators = Translators;
FileTypes = new ListMapping<AssetType, string>();
RunOrder = new System.Collections.Generic.List<RunTime>();
Translators.ForEach(x => FileTypes.Add(x.TranslatesTo, x.FileTypeAccepts));
FileTypes.Add(AssetType.CSS, "css");
FileTypes.Add(AssetType.Javascript, "js");
RunOrder.Add(RunTime.PostTranslate);
RunOrder.Add(RunTime.PreMinified);
RunOrder.Add(RunTime.Minify);
RunOrder.Add(RunTime.PostMinified);
RunOrder.Add(RunTime.PreCombine);
}