private IEnumerable <IDependencyInfo> ExamineSource(ICodeFileInfo codeFile, ISolutionInfo solution, IList <ICodeFileInfo> parsedCodeFiles)
        {
            var result = GetCompilationResult(codeFile.GetContent());
            var nodes  = result.Flatten();


            var dependencies = nodes.Select(node => new DependencyTypeFactory().For(node))
                               .Where(dependency => dependency != null)
                               .Distinct(new DependencyComparer()).ToList();

            parsedCodeFiles.Add(codeFile);

            foreach (var dependencyInfo in dependencies)
            {
                dependencyInfo.CodeFileInfo = solution.FindCodeFileFor(dependencyInfo);
            }

            var codeFileInfos = dependencies
                                .Select(dependencyInfo => dependencyInfo.CodeFileInfo)
                                .Where(codeFileInfo => codeFileInfo != null && !parsedCodeFiles.Contains(codeFileInfo))
                                .Distinct().ToList();

            foreach (var code in codeFileInfos)
            {
                dependencies.AddRange(ExamineSource(code, solution, parsedCodeFiles));
            }

            return(dependencies);
        }
        private IEnumerable<IDependencyInfo> ExamineSource(ICodeFileInfo codeFile, ISolutionInfo solution, IList<ICodeFileInfo> parsedCodeFiles)
        {
            var result = GetCompilationResult(codeFile.GetContent());
            var nodes = result.Flatten();

            var dependencies = nodes.Select(node => new DependencyTypeFactory().For(node))
                .Where(dependency => dependency != null)
                .Distinct(new DependencyComparer()).ToList();

            parsedCodeFiles.Add(codeFile);

            foreach (var dependencyInfo in dependencies)
            {
                dependencyInfo.CodeFileInfo = solution.FindCodeFileFor(dependencyInfo);
            }

            var codeFileInfos = dependencies
                .Select(dependencyInfo => dependencyInfo.CodeFileInfo)
                .Where(codeFileInfo => codeFileInfo != null && !parsedCodeFiles.Contains(codeFileInfo))
                .Distinct().ToList();

            foreach (var code in codeFileInfos)
            {
                dependencies.AddRange(ExamineSource(code, solution, parsedCodeFiles));
            }

            return dependencies;
        }
Пример #3
0
 public ProjectInfo(string name, string path, ISolutionInfo solution)
 {
     Name       = name;
     Path       = path;
     Solution   = solution;
     codeFiles  = new List <ICodeFileInfo>();
     references = new List <IReferenceInfo>();
 }
Пример #4
0
 public ProjectInfo(string name, string path, ISolutionInfo solution)
 {
     Name = name;
     Path = path;
     Solution = solution;
     codeFiles = new List<ICodeFileInfo>();
     references = new List<IReferenceInfo>();
 }
Пример #5
0
        private static void ParseSolutionItem(ISolutionInfo item, List<FilePathAbsolute> filePathListe)
        {
            FilePathAbsolute solution = new FilePathAbsolute(item.SolutionFile.FullName);

            foreach (var projectInfo in item.ProjectListe)
            {
                ParseProjectInfo(projectInfo, solution, filePathListe);
            }

            filePathListe.Add(solution);
        }
Пример #6
0
 public ISolution CreateSolution(ISolutionInfo info)
 {
     return(Solution.Create(info));
 }
Пример #7
0
 public ISourceTreeDirectory FindDirectoryBySolution(ISolutionInfo solution)
 {
     return FindDirectoryByDirectoryInfo(this, solution.SolutionFile.Directory);
 }
Пример #8
0
 public ISourceTreeDirectory FindDirectoryBySolution(ISolutionInfo solution)
 {
     return m_root.FindDirectoryBySolution(solution);
 }
        public IEnumerable <IDependencyInfo> ExamineSource(ICodeFileInfo codeFile, ISolutionInfo solution)
        {
            var dependencyInfos = ExamineSource(codeFile, solution, new List <ICodeFileInfo>()).Distinct(new DependencyComparer());

            return(dependencyInfos);
        }
 public IEnumerable<IDependencyInfo> ExamineSource(ICodeFileInfo codeFile, ISolutionInfo solution)
 {
     var dependencyInfos = ExamineSource(codeFile, solution, new List<ICodeFileInfo>()).Distinct(new DependencyComparer());
     return dependencyInfos;
 }
 public ISolution CreateSolution(ISolutionInfo info)
 {
     return Solution.Create(info);
 }
Пример #12
0
 private IList<ISourceTreeDirectory> BuildCheckoutTreeListe(ISourceTreeDirectory parentSourceTree, ISolutionInfo solution)
 {
     IList<ISourceTreeDirectory> childDirectoryListe = parentSourceTree.ChildDirectoryListe;
     ISourceTreeDirectory directory = parentSourceTree.FindDirectoryBySolution(solution);
     throw new NotImplementedException();
 }
Пример #13
0
 internal CheckoutStructure(ISourceTreeDirectory parentSourceTree, ISolutionInfo solution)
 {
     Solution = solution;
     ParentSourceTree = parentSourceTree;
     CheckoutTreeListe = BuildCheckoutTreeListe(ParentSourceTree, Solution);
 }
Пример #14
0
 public VcsSolution(ISolutionInfo solution)
 {
     Solution = solution;
 }