public static async IAsyncEnumerable <BookmarkTreeNode> GetAllParentAsync(this IBookmarksApi bookmarksApi, string id) { var node = await bookmarksApi.Get(id); var currentNode = node?.FirstOrDefault(); var maxLevelCount = 5; var i = 0; while (currentNode != null) { yield return(currentNode); if (++i > maxLevelCount) { yield break; } if (!string.IsNullOrEmpty(currentNode.ParentId)) { var nodes = await bookmarksApi.Get(currentNode.ParentId); currentNode = nodes?.FirstOrDefault(); } } }
public SyncBookmarkJob( ILogger <SyncBookmarkJob> logger, IBkManager bkManager, IBookmarksApi bookmarksApi) { _logger = logger; _bkManager = bkManager; _bookmarksApi = bookmarksApi; }