예제 #1
0
 public ResourceCompiler(ContentFilterPipelineMap contentFilterPipelineMap, DependencyManager dependencyManager, IResourceGroupManager scriptGroups, IResourceGroupManager styleGroups, IResourceFinder finder, ResourceMode resourceMode)
 {
     _contentFilterPipelineMap = contentFilterPipelineMap;
     _dependencyManager = dependencyManager;
     _scriptGroups = scriptGroups;
     _styleGroups = styleGroups;
     _finder = finder;
     _resourceMode = resourceMode;
 }
예제 #2
0
 public ResourceTestContext(ResourceMode resourceMode = ResourceMode.Debug)
 {
     Mode = resourceMode;
     _innerFinder = new StubResourceFinder();
     _outerFinder = new ResourceModeFilteringFinder(resourceMode, _innerFinder);
     _contentFilterPipelineMap = new ContentFilterPipelineMap();
     _scriptGroups = new ResourceGroupManager(Mode);
     _styleGroups = new ResourceGroupManager(Mode);
     _dependencyCache = new InMemoryDependencyCache();
     _dependencyProvider = new StubDependencyProvider();
     _dependencyManager = new DependencyManager(_outerFinder, _dependencyCache, _scriptGroups, _styleGroups, resourceMode);
     _dependencyManager.MapProvider(".js", _dependencyProvider);
     _dependencyManager.MapProvider(".css", _dependencyProvider);
 }
예제 #3
0
        internal AssmanContext(ResourceMode resourceMode)
        {
            var resourceCache = ResourceCacheFactory.GetCache(resourceMode);

            _scriptGroups = ResourceGroupManager.GetInstance(resourceMode, resourceCache);
            _styleGroups = ResourceGroupManager.GetInstance(resourceMode, resourceCache);
            _compositeFinder = new CompositeResourceFinder();
            _compositeFinder.Exclude(new ConsolidatedResourceExcluder(_scriptGroups));
            _compositeFinder.Exclude(new ConsolidatedResourceExcluder(_styleGroups));
            _compositeFinder.Exclude(new PreCompiledResourceExcluder());
            _compositeFinder.Exclude(new VsDocResourceExcluder());
            _finder = new ResourceModeFilteringFinder(resourceMode, new CachingResourceFinder(resourceCache, _compositeFinder));
            _filterPipelineMap = new ContentFilterPipelineMap();
            _assemblies = new List<Assembly>();
            _dependencyManager = DependencyManagerFactory.GetDependencyManager(_finder, _scriptGroups, _styleGroups, resourceMode);
            _resourceMode = resourceMode;
            _scriptPathResolver = new ResourcePathResolver(_scriptGroups, _dependencyManager, _finder);
            _stylePathResolver = new ResourcePathResolver(_styleGroups, _dependencyManager, _finder);
        }
예제 #4
0
        private void SetupWithMode(ResourceMode resourceMode)
        {
            _dependencyProvider = new StubDependencyProvider();
            _resourceFinder = new StubResourceFinder();
            _dependencyCache = new InMemoryDependencyCache();
            _scriptGroups = new ResourceGroupManager(resourceMode);
            _styleGroups = new ResourceGroupManager(resourceMode);

            _dependencyManager = new DependencyManager(new ResourceModeFilteringFinder(resourceMode, _resourceFinder), _dependencyCache, _scriptGroups, _styleGroups,
                                                       resourceMode);
            _dependencyManager.MapProvider(".js", _dependencyProvider);
        }
예제 #5
0
 public ResourcePathResolver(IResourceGroupManager groupManager, DependencyManager dependencyManager, IResourceFinder finder)
 {
     _groupManager = groupManager;
     _dependencyManager = dependencyManager;
     _finder = finder;
 }
예제 #6
0
 public static IEnumerable <string> SortByDependencies(this IEnumerable <string> resourcePaths, DependencyManager dependencyManager)
 {
     return(resourcePaths.PartialOrderBy(dependencyManager.Comparer));
 }
예제 #7
0
 public static IEnumerable<string> SortByDependencies(this IEnumerable<string> resourcePaths, DependencyManager dependencyManager)
 {
     return resourcePaths.PartialOrderBy(dependencyManager.Comparer);
 }
예제 #8
0
 //we use a partial order by here, as we want to do a topological sort based on our dependency graph
 //the resources are already sorted within their groups (by the order in which they are included in the config),
 //so we should try to preserve that order unless the dependencies instruct otherwise
 public static IEnumerable<IResource> SortByDependencies(this IEnumerable<IResource> resources, DependencyManager dependencyManager)
 {
     return resources.PartialOrderBy(dependencyManager.Comparer);
 }