private IEnumerable <DependencyItem> GetUidDependencyCore(FileModel model) { string fromNode = ((RelativePath)model.OriginalFileAndType.File).GetPathFromWorkingFolder().ToString(); foreach (var uid in model.LinkToUids) { var item = new DependencyItemSourceInfo(DependencyItemSourceType.Uid, uid); if (model.UidLinkSources.TryGetValue(uid, out ImmutableList <LinkSourceInfo> list)) { foreach (var uidLinkSourceFile in list) { var sourceFile = uidLinkSourceFile.SourceFile != null ? ((RelativePath)uidLinkSourceFile.SourceFile).GetPathFromWorkingFolder().ToString() : fromNode; if (!string.IsNullOrEmpty(uidLinkSourceFile.Anchor)) { yield return(new DependencyItem(sourceFile, item, sourceFile, DependencyTypeName.Bookmark)); } else { yield return(new DependencyItem(sourceFile, item, sourceFile, DependencyTypeName.Uid)); } } } else { yield return(new DependencyItem(fromNode, item, fromNode, DependencyTypeName.Uid)); } } }
private IEnumerable <DependencyItem> GetUidDependencyForOverwrite(FileModel model) { if (model.Type != DocumentType.Overwrite) { yield break; } string fromNode = ((RelativePath)model.OriginalFileAndType.File).GetPathFromWorkingFolder().ToString(); var uids = model.Uids.Select(u => u.Name).ToImmutableHashSet(); foreach (var uid in uids) { var item = new DependencyItemSourceInfo(DependencyItemSourceType.Uid, uid); yield return(new DependencyItem(fromNode, item, fromNode, DependencyTypeName.Overwrite)); yield return(new DependencyItem(item, fromNode, fromNode, DependencyTypeName.Overwrite)); } }
private void ReportDependencyCore(DependencyItemSourceInfo from, DependencyItemSourceInfo to, DependencyItemSourceInfo reportedBy, string type) { DependencyGraph.ReportDependency(new DependencyItem(from, to, reportedBy, type)); }