コード例 #1
0
ファイル: IAngularProject.cs プロジェクト: fossabot/web-host
        private static IEnumerable <IAngularModule> OrderModules(IDictionary <string, IAngularModule> modules)
        {
            Queue <string>   queue   = new Queue <string>(modules.Keys);
            HashSet <string> ordered = new HashSet <string>();

            while (queue.Count > 0)
            {
                IAngularModule module = modules[queue.Dequeue()];
                if (module.Dependencies.All(x => ordered.Contains(x.Name) || !modules.ContainsKey(x.Name)))
                {
                    ordered.Add(module.Name);
                }
                else
                {
                    queue.Enqueue(module.Name);
                }
            }
            return(ordered.Select(mod => modules[mod]).ToList());
        }
コード例 #2
0
 public ResolvedState(IAngularModule module)
 {
     Module = module;
 }
コード例 #3
0
        public IAngularDependencyState Resolve()
        {
            IAngularModule module = context[Name];

            return(module != null ? (IAngularDependencyState) new ResolvedState(module) : this);
        }