コード例 #1
0
        public IEnumerable <NugetReference> GetNugetReferences()
        {
            var fileContents = _fileService.GetFileContents();
            var jObject      = JObject.Parse(fileContents);
            var targets      = jObject.Property("targets").Value as JObject;
            var assets       = new List <NugetReference>();

            foreach (var x in targets)
            {
                foreach (var child in x.Value.Children())
                {
                    var jprop          = (JProperty)child;
                    var nugetReference = new NugetReference
                    {
                        Id      = jprop.Name.Split('/')[0],
                        Version = jprop.Name.Split('/')[1],
                    };

                    var dependencies = new List <NugetReference>();
                    foreach (var childOfAsset in child.Children())
                    {
                        var dependenciesNode = childOfAsset.Children().FirstOrDefault(c => ((JProperty)c).Name.Equals("dependencies"));

                        if (dependenciesNode != null)
                        {
                            var nugetReferences = GetDependencies(dependenciesNode);
                            dependencies.AddRange(nugetReferences);
                        }
                    }
                    nugetReference.Dependencies = dependencies;
                    assets.Add(nugetReference);
                }
            }
            return(assets);
        }
コード例 #2
0
ファイル: Usage.cs プロジェクト: ISO-morphism/dotnet-retire
 public void Add(NugetReference asset)
 {
     _referenceDepth.Add(asset);
 }