Пример #1
0
 private void TakeDepsToProcessFromQueue(DepsQueue queue, IList <DepWithParent> depsPool,
                                         IList <DepWithParent> backToQueue, ModulesContainer processed)
 {
     while (!queue.IsEmpty())
     {
         var curDep = queue.Pop();
         if (curDep.Dep.Treeish == null)
         {
             curDep.Dep.Treeish = processed.GetTreeishByName(curDep.Dep.Name);
         }
         if (processed.IsProcessed(curDep.Dep))
         {
             continue;
         }
         processed.ThrowOnTreeishConflict(curDep);
         if (depsPool.Select(d => d.Dep.Name).Contains(curDep.Dep.Name))
         {
             backToQueue.Add(curDep);
         }
         else
         {
             depsPool.Add(curDep);
         }
     }
 }
Пример #2
0
        private static void AddNewDeps(DepsQueue queue, ModulesContainer processed, List <DepWithParent> depsPool)
        {
            foreach (var dep in depsPool)
            {
                var currentModuleDeps = GetCurrentModuleDeps(dep.Dep);

                if (currentModuleDeps.Deps == null)
                {
                    continue;
                }

                queue.AddRange(currentModuleDeps.Deps.Where(d => !processed.IsProcessed(d))
                               .Select(d => new DepWithParent(d, dep.Dep.Name)).ToList());
            }
        }