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; }
public IEnumerable<IDeclerationInfo> ExamineSource(ICodeFileInfo codeFile) { var result = GetCompilationResult(codeFile.GetContent()); var nodes = result.Flatten(); return nodes.Select(node => new DependencyTypeFactory().DeclerationFor(node, codeFile)) .Where(dependency => dependency != null) .Distinct(new DeclerationComparer()).ToList(); }
public IEnumerable <IDeclerationInfo> ExamineSource(ICodeFileInfo codeFile) { var result = GetCompilationResult(codeFile.GetContent()); var nodes = result.Flatten(); return(nodes.Select(node => new DependencyTypeFactory().DeclerationFor(node, codeFile)) .Where(dependency => dependency != null) .Distinct(new DeclerationComparer()).ToList()); }
public IDeclerationInfo DeclerationFor(INode node, ICodeFileInfo codeFile) { if (node.IsA<TypeDeclaration>()) { var creationNode = (TypeDeclaration)node; return new DeclerationInfo(creationNode.Name, codeFile); } return null; }
public IDeclerationInfo DeclerationFor(INode node, ICodeFileInfo codeFile) { if (node.IsA <TypeDeclaration>()) { var creationNode = (TypeDeclaration)node; return(new DeclerationInfo(creationNode.Name, codeFile)); } return(null); }
private void ResolveDependenciesFor(ICodeFileInfo selectedCodeFile) { var dependencies = wiring.GetDependencyExaminer().ExamineSource(selectedCodeFile, selectedCodeFile.Solution); DependencyViewer.DataContext = new { Dependencies = dependencies.Where(d => !d.IsExternal), selectedCodeFile.Declerations, selectedCodeFile.Project.References }; filesToBuild = new BuildCodeFiles(selectedCodeFile, dependencies, selectedCodeFile.Project.References); }
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 void AddCodeFile(ICodeFileInfo codeFile) { codeFiles.Add(codeFile); }
public void BeforeEachTest() { codeFile = MockRepository.GenerateStub<ICodeFileInfo>(); solution = new SolutionInfo(null, null); }
public DeclerationInfo(string name, ICodeFileInfo codeFileInfo) { Name = name; CodeFileInfo = codeFileInfo; }
public BuildCodeFiles(ICodeFileInfo target, IEnumerable<IDependencyInfo> dependencies, IEnumerable<IReferenceInfo> references) { Target = target; Dependencies = dependencies; References = references; }
public void BeforeEachTest() { codeFile = MockRepository.GenerateStub<ICodeFileInfo>(); }
public BuildCodeFiles(ICodeFileInfo target, IEnumerable <IDependencyInfo> dependencies, IEnumerable <IReferenceInfo> references) { Target = target; Dependencies = dependencies; References = references; }
public void BeforeEachTest() { codeFile = MockRepository.GenerateStub <ICodeFileInfo>(); }
public void BeforeEachTest() { codeFile = MockRepository.GenerateStub <ICodeFileInfo>(); solution = new SolutionInfo(null, null); }