private IBookmarkItem ReadItems(ChromeBookmarkModel model) { if (!string.IsNullOrEmpty(model.url) && model.children == null) { var item = new BookmarkLink(model.url, model.title ?? model.name); AddAttributes(item.Attributes, model); item.Added = DateTimeHelper.FromUnixTimeStamp(model.dateadded ?? model.date_added); item.LastModified = DateTimeHelper.FromUnixTimeStamp(model.dateGroupModified ?? model.date_modified); return(item); } else { var folder = new BookmarkFolder(model.title ?? model.name); AddAttributes(folder.Attributes, model); folder.Added = DateTimeHelper.FromUnixTimeStamp(model.dateadded ?? model.date_added); folder.LastModified = DateTimeHelper.FromUnixTimeStamp(model.dateGroupModified ?? model.date_modified); if (model.children != null) { foreach (var inner in model.children.OrderBy(x => x.index ?? 0)) { folder.Add(ReadItems(inner)); } } return(folder); } }
private void AddAttributes(IDictionary <string, string> attributes, ChromeBookmarkModel model) { if (model.type != null) { attributes.Add("type", model.type); } if (model.id != null) { attributes.Add("id", model.id); } if (model.parentid != null) { attributes.Add("parentid", model.parentid); } var title = model.title ?? model.name; if (title != null && string.Equals("bookmarks bar", title, StringComparison.InvariantCultureIgnoreCase) && model.url == null) { attributes.Add("personal_toolbar_folder", "true"); } }