private static void PullBookmarksWork(Book book) { List <Bookmark> sBookmarks = SaveMyStuff.GetMyBookmarks(book.ID); if (sBookmarks != null && sBookmarks.Count > 0) { foreach (var sBookmark in sBookmarks) { Bookmark dBookmark = BooksOnDeviceAccessor.GetBookmark(book.ID, sBookmark.PageID); if (dBookmark == null) { // This is a new bookmark from the server BooksOnDeviceAccessor.AddBookmark(sBookmark); } else { if (dBookmark.ModifiedUtc <= sBookmark.ModifiedUtc) { if (sBookmark.Removed) { // Remove bookmark if the bookmark on the cloud has 'Removed' checked BooksOnDeviceAccessor.RemoveBookmark(dBookmark.BookID, dBookmark.PageID); } else { BooksOnDeviceAccessor.UpdateBookmark(sBookmark); } } } } } }
private static void Add(Bookmark bookmark) { BooksOnDeviceAccessor.AddBookmark(bookmark); }
static void HandleGetMyBookmarksEvent(String bookID, List <Bookmark> sBookmarks, bool lastItem) { try { List <Bookmark> dBookmarks = BooksOnDeviceAccessor.GetBookmarks(bookID); if (dBookmarks != null && dBookmarks.Count > 0) { foreach (Bookmark dBookmark in dBookmarks) { if (sBookmarks != null && sBookmarks.Count > 0) { foreach (Bookmark sBookmark in sBookmarks) { if (dBookmark.PageID == sBookmark.PageID) { if (dBookmark.ModifiedUtc < sBookmark.ModifiedUtc) { if (sBookmark.Removed) { // Remove bookmark if bookmark on the cloud has 'Removed' checked BooksOnDeviceAccessor.RemoveBookmark(dBookmark.BookID, dBookmark.PageID); } else { // Update bookmark if bookmark on the cloud has the latest ModifiedUtc dBookmark.BookVersion = sBookmark.BookVersion; dBookmark.Title = sBookmark.Title; dBookmark.ModifiedUtc = sBookmark.ModifiedUtc; BooksOnDeviceAccessor.UpdateBookmark(dBookmark); } } break; } } } } } // Add bookmark if the bookmark is not on the device if (sBookmarks != null && sBookmarks.Count > 0) { foreach (Bookmark sBookmark in sBookmarks) { if (!sBookmark.Removed) { if (BooksOnDeviceAccessor.GetBookmark(sBookmark.BookID, sBookmark.PageID) == null) { BooksOnDeviceAccessor.AddBookmark(sBookmark); } } } } // Check if syncing is done if (cancelled) { SetReceive(true); CheckReceiveDone(); } else { if (lastItem) { SaveMyStuff.GetMyBookmarksEvent -= HandleGetMyBookmarksEvent; receiveBookmarks = true; CheckReceiveDone(); } } } catch (Exception ex) { SetReceive(true); CheckReceiveDone(); Logger.WriteLineDebugging("CloudSync - HandleGetMyBookmarksEvent: {0}", ex.ToString()); } }