private ExternalsFolder ReadExternalsFolder(XmlReader reader) { MoveToElement(reader, ExternalsElementName); string debug = string.Empty; string release = string.Empty; //Read Element attributes while (reader.MoveToNextAttribute()) { switch (reader.Name) { case DebugAttributeName: debug = reader.ReadContentAsString(); break; case ReleaseAttributeName: release = reader.ReadContentAsString(); break; } } //Move back to Element reader.MoveToElement(); ExternalsFolder externalsFolder = new ExternalsFolder(debug, release); return(externalsFolder); }
internal Solution(SolutionCollection solutions, FileInfo solutionFile, string name, string sourceFolder, BuildFolder buildFolder, PackageFolder packageFolder, ExternalsFolder externalsFolder, List <SolutionDependency> dependencies) { _solutions = solutions; _solutionFile = solutionFile; _buildFolder = buildFolder; _packageFolder = packageFolder; _sourceFolder = sourceFolder; _externalsFolder = externalsFolder; _dependencies = dependencies; SolutionName = name; }
public Solution ReadSolution(SolutionCollection solutions, FileInfo solutionFile) { BuildFolder buildFolder = null; PackageFolder packageFolder = null; ExternalsFolder externalsFolder = null; List <SolutionDependency> dependencies = new List <SolutionDependency>(); string name = string.Empty; string source = string.Empty; using (FileStream stream = solutionFile.OpenRead()) { using (XmlReader reader = XmlReader.Create(stream)) { MoveToElement(reader, SolutionElementName); //Read Element attributes while (reader.MoveToNextAttribute()) { switch (reader.Name) { case SolutionNameAttributeName: name = reader.ReadContentAsString(); break; } } //Move back to Element reader.MoveToElement(); //Read Element content while (reader.Read()) { if (reader.NodeType == XmlNodeType.EndElement && string.Equals(SolutionElementName, reader.Name)) { break; } if (reader.NodeType != XmlNodeType.Element) { continue; } switch (reader.Name) { case BuildElementName: buildFolder = ReadBuildFolder(reader); break; case PackageElementName: packageFolder = ReadPackageFolder(reader); break; case SourceElementName: source = reader.ReadInnerXml(); break; case ExternalsElementName: externalsFolder = ReadExternalsFolder(reader); break; case DependenciesElementName: ReadDependencies(reader, dependencies); break; } } } } Solution solution = new Solution(solutions, solutionFile, name, source, buildFolder, packageFolder, externalsFolder, dependencies); return(solution); }