Exemple #1
0
        private PackageInformationMapping LoadPackageInformationMapping(string folder)
        {
            var pkgInfoDir     = Path.Combine(folder, "PackageInformation");
            var pkgInfoMapping = new PackageInformationMapping();

            foreach (var file in ListFiles(pkgInfoDir, "*.json"))
            {
                try
                {
                    var mapping = JsonConvert.DeserializeObject <PackageInformationMapping>(_fileAccessor.ReadAllText(file.AbsolutePath));
                    pkgInfoMapping.Merge(mapping);
                }
                catch (Exception ex)
                {
                    OPSLogger.LogUserError(LogCode.ECMA2Yaml_PackageInformation_LoadFailed, file.AbsolutePath, ex);
                }
            }
            return(pkgInfoMapping);
        }
Exemple #2
0
        public static IEnumerable <VersionedString> MonikerizePackageStrings(ReflectionItem item, PackageInformationMapping pkgInfoMapping)
        {
            if (item.VersionedAssemblyInfo == null)
            {
                return(null);
            }

            var monikerPackagePairs = item.VersionedAssemblyInfo.ValuesPerMoniker
                                      .Select(pair => (
                                                  moniker: pair.Key,
                                                  pkgStr: string.Join(", ", pair.Value.Select(asm => pkgInfoMapping.TryGetPackageDisplayString(pair.Key, asm.Name))
                                                                      .Where(str => str != null)
                                                                      .Distinct()
                                                                      .OrderBy(str => str))
                                                  ))
                                      .Where(pair => pair.pkgStr != "")
                                      .ToList();
            var versionedList = monikerPackagePairs
                                .GroupBy(p => p.pkgStr)
                                .Select(g => new VersionedString()
            {
                Value = g.Key, Monikers = g.Select(p => p.moniker).ToHashSet()
            })
                                .ToList();

            if (versionedList.Count == 1)
            {
                versionedList.First().Monikers = null;
            }
            return(versionedList.NullIfEmpty());
        }