public XRefSpec GetXrefSpec(string uid) { if (uid == null) { throw new ArgumentNullException(nameof(uid)); } if (string.IsNullOrWhiteSpace(uid)) { return(null); } if (XRefSpecMap.TryGetValue(uid, out XRefSpec xref)) { return(xref); } if (ExternalXRefSpec.TryGetValue(uid, out xref)) { return(xref); } if (UnknownUids.ContainsKey(uid)) { return(null); } if (_reader != null) { xref = _reader.Result.Find(uid); if (xref != null) { return(ExternalXRefSpec.AddOrUpdate(uid, xref, (_, old) => old + xref)); } } if (ExternalReferencePackages.Length > 0) { using (var externalReferences = new ExternalReferencePackageCollection(ExternalReferencePackages, MaxParallelism)) { xref = GetExternalReference(externalReferences, uid); } if (xref != null) { return(ExternalXRefSpec.AddOrUpdate(uid, xref, (_, old) => old + xref)); } } var uidList = ResolveByXRefServiceAsync(new List <string> { uid }, ExternalXRefSpec).Result; if (uidList.Count == 0) { return(ExternalXRefSpec[uid]); } UnknownUids.TryAdd(uid, null); return(null); }
public void RegisterInternalXrefSpecBookmark(string uid, string bookmark) { if (uid == null) { throw new ArgumentNullException(nameof(uid)); } if (uid.Length == 0) { throw new ArgumentException("Uid cannot be empty", nameof(uid)); } if (bookmark == null) { throw new ArgumentNullException(nameof(bookmark)); } if (bookmark.Length == 0) { return; } if (XRefSpecMap.TryGetValue(uid, out XRefSpec xref)) { xref.Href = UriUtility.GetNonFragment(xref.Href) + "#" + bookmark; } else { throw new DocfxException($"Xref spec with uid {uid} not found. Can't register bookmark {bookmark} to it."); } }
public void RegisterInternalXrefSpecBookmark(string uid, string bookmark) { if (string.IsNullOrEmpty(uid)) { throw new ArgumentNullException(nameof(uid)); } if (bookmark == null) { throw new ArgumentNullException(nameof(uid)); } if (bookmark == string.Empty) { return; } XRefSpec xref; if (XRefSpecMap.TryGetValue(uid, out xref)) { xref.Href = UriUtility.GetNonFragment(xref.Href) + "#" + bookmark; } else { throw new DocfxException($"Xref spec with uid {uid} not found. Can't register bookmark {bookmark} to it."); } }
public XRefSpec GetXrefSpec(string uid) { if (string.IsNullOrEmpty(uid)) { throw new ArgumentNullException(nameof(uid)); } XRefSpec xref; if (XRefSpecMap.TryGetValue(uid, out xref)) { return(xref); } if (ExternalXRefSpec.TryGetValue(uid, out xref)) { return(xref); } if (UnknownUids.ContainsKey(uid)) { return(null); } if (XRefMaps != null && XRefMaps.Count > 0) { xref = (from map in XRefMaps select new BasicXRefMapReader(map).Find(uid)).FirstOrDefault(); if (xref != null) { return(ExternalXRefSpec.AddOrUpdate(uid, xref, (_, old) => old + xref)); } } if (ExternalReferencePackages.Length > 0) { using (var externalReferences = new ExternalReferencePackageCollection(ExternalReferencePackages, MaxParallelism)) { xref = GetExternalReference(externalReferences, uid); } if (xref != null) { return(ExternalXRefSpec.AddOrUpdate(uid, xref, (_, old) => old + xref)); } } UnknownUids.TryAdd(uid, null); return(null); }
public XRefSpec GetXrefSpec(string uid) { if (string.IsNullOrEmpty(uid)) { throw new ArgumentNullException(nameof(uid)); } if (XRefSpecMap.TryGetValue(uid, out XRefSpec xref)) { return(xref); } if (ExternalXRefSpec.TryGetValue(uid, out xref)) { return(xref); } if (UnknownUids.ContainsKey(uid)) { return(null); } if (_reader != null) { xref = _reader.Result.Find(uid); if (xref != null) { return(ExternalXRefSpec.AddOrUpdate(uid, xref, (_, old) => old + xref)); } } if (ExternalReferencePackages.Length > 0) { using (var externalReferences = new ExternalReferencePackageCollection(ExternalReferencePackages, MaxParallelism)) { xref = GetExternalReference(externalReferences, uid); } if (xref != null) { return(ExternalXRefSpec.AddOrUpdate(uid, xref, (_, old) => old + xref)); } } UnknownUids.TryAdd(uid, null); return(null); }
public XRefSpec GetXrefSpec(string uid) { if (string.IsNullOrEmpty(uid)) { throw new ArgumentNullException(nameof(uid)); } XRefSpec xref; if (XRefSpecMap.TryGetValue(uid, out xref)) { return(xref); } if (ExternalXRefSpec.TryGetValue(uid, out xref)) { return(xref); } return(null); }