示例#1
0
        public static XmlProjectDataAccess From(AbsoluteFilePath projectFilePath, XmlProject deserializeProjectFile)
        {
            var xmlProjectDataAccess = new XmlProjectDataAccess(deserializeProjectFile);

            xmlProjectDataAccess.SetAbsolutePath(projectFilePath);
            xmlProjectDataAccess.NormalizeProjectDependencyPaths(projectFilePath);
            return(xmlProjectDataAccess);
        }
示例#2
0
        private static XmlProjectDataAccess DeserializeProjectData(AbsoluteFilePath projectFilePath)
        {
            var deserializeProjectFile = DeserializeProjectFile(projectFilePath);
            var xmlProjectDataAccess   = XmlProjectDataAccess.From(
                projectFilePath,
                deserializeProjectFile);

            return(xmlProjectDataAccess);
        }
示例#3
0
 private static SourceCodeFileDto CreateXmlSourceCodeFile(
     XmlProjectDataAccess projectAccess,
     AbsoluteDirectoryPath projectDirectory,
     ICSharpFileSyntaxTree syntaxTree,
     Dictionary <string, ClassDeclarationInfo> classDeclarationSignatures)
 {
     return(new SourceCodeFileDto(
                AtmaFileSystemPaths.RelativeFilePath(GetPathRelativeTo(projectDirectory, syntaxTree.FilePath)),
                syntaxTree.GetAllUniqueNamespaces().ToList(),
                projectAccess.RootNamespace(),
                projectAccess.DetermineAssemblyName(),
                syntaxTree.GetAllUsingsFrom(classDeclarationSignatures),
                classDeclarationSignatures.Values.ToList()));
 }
示例#4
0
        public static void LoadFilesInto(XmlProjectDataAccess projectAccess)
        {
            var projectDirectory = projectAccess.GetParentDirectoryName();

            var syntaxTrees = SourceCodeFilesIn(projectDirectory).Select(CSharpFileSyntaxTree.ParseFile).ToArray();

            var classDeclarationSignatures
                = CSharpFileSyntaxTree.GetClassDeclarationSignaturesFromFiles(syntaxTrees);

            foreach (var dotNetProject
                     in syntaxTrees.Select(tree => CreateXmlSourceCodeFile(projectAccess, projectDirectory, tree, classDeclarationSignatures)))
            {
                projectAccess.AddFile(dotNetProject);
            }
        }