/// <summary> /// standard use case, if IncludeChildren flag is set, return this item and all its children. /// if not just return this item. /// </summary> public virtual IEnumerable <SyncItem> GetItems(SyncItem item) { if (item.Flags.HasFlag(DependencyFlags.IncludeChildren)) { var items = new List <SyncItem> { item }; items.AddRange(GetDecendants(item, item.Flags & ~DependencyFlags.IncludeChildren)); return(items); } else { return(item.AsEnumerableOfOne()); } }
protected abstract IEnumerable <SyncItem> GetDecendants(SyncItem item, DependencyFlags flags);