public DotnetListPackageResult Parse(IEnumerable <string> lines) { var stringCollection = new StringCollection(lines); var reader = new FrameworkReader(); var result = new DotnetListPackageResult(); while (!stringCollection.Finished) { reader.Read(stringCollection, result); stringCollection.MoveNext(); } result.Frameworks.Sort((x, y) => string.Compare(x.Name, y.Name, StringComparison.InvariantCultureIgnoreCase)); return(result); }
public void Read(StringCollection collection, DotnetListPackageResult result) { while (collection.Current.StartsWith("[")) { var index = collection.Current.IndexOf("]"); var name = collection.Current.Substring(1, index - 1); var framework = new DotnetListPackageFramework { Name = name }; collection.MoveNext(); new TopLevelPackageReader().Read(collection, framework); new TransitivePackageReader().Read(collection, framework); if (framework.Dependencies.Any()) { framework.Dependencies.Sort((x, y) => string.Compare(x.Name, y.Name, StringComparison.InvariantCultureIgnoreCase)); result.Frameworks.Add(framework); } } }