public async Task ResolveExternalXRefSpecForNoneSpecsAsync() { // remove internal xref. var uidList = (from uid in XRef where !ExternalXRefSpec.ContainsKey(uid) && !XRefSpecMap.ContainsKey(uid) select uid) .Concat( from spec in ExternalXRefSpec.Values where spec.Href == null && !spec.IsSpec && !XRefSpecMap.ContainsKey(spec.Uid) select spec.Uid) .ToList(); if (uidList.Count == 0) { return; } uidList = ResolveByXRefMaps(uidList, ExternalXRefSpec); if (uidList.Count > 0) { uidList = ResolveByExternalReferencePackages(uidList, ExternalXRefSpec); } if (uidList.Count > 0) { uidList = await ResolveByXRefServiceAsync(uidList, ExternalXRefSpec); } Logger.LogVerbose($"{uidList.Count} uids are unresolved."); foreach (var uid in uidList) { UnknownUids.TryAdd(uid, null); } }
public void ResolveExternalXRefSpec() { // remove internal xref. var uidList = (from uid in XRef where !XRefSpecMap.ContainsKey(uid) select uid) .Concat( from spec in ExternalXRefSpec.Values where spec.Href == null select spec.Uid) .ToList(); if (uidList.Count > 0) { uidList = ResolveByXRefMaps(uidList, ExternalXRefSpec); } if (uidList.Count > 0) { uidList = ResolveByExternalReferencePackages(uidList, ExternalXRefSpec); } foreach (var uid in uidList) { UnknownUids.TryAdd(uid, null); } }
public void SetExternalXRefSpec() { var result = new Dictionary <string, XRefSpec>(); // remove internal xref. var xref = XRef.Where(s => !XRefSpecMap.ContainsKey(s)).ToList(); if (xref.Count == 0) { return; } if (ExternalReferencePackages.Length > 0) { using (var externalReferences = new ExternalReferencePackageCollection(ExternalReferencePackages, MaxParallelism)) { foreach (var uid in xref) { var spec = GetExternalReference(externalReferences, uid); if (spec != null) { result[uid] = spec; } } } Logger.LogInfo($"{result.Count} external references found in {ExternalReferencePackages.Length} packages."); } ExternalXRefSpec = result; }