示例#1
0
        public List <Book> GetCacheData()
        {
            List <Book> books = null;

            if (string.IsNullOrEmpty(AppSettingService.GetUserId()))
            {
                return(null);
            }
            books = DbBookShelf.GetBooks(AppDataPath.GetAppCacheDbPath(), AppSettingService.GetUserId());
            return(books);
        }
示例#2
0
        public void OnSetHadReadCommand(object obj)
        {
            var item = obj as Book;

            if (item == null || !item.IsNew)
            {
                return;
            }
            item.IsNew = false;
            item.LastReadChapterName = item.NewestChapterName;
            DbBookShelf.InsertOrUpdateBook(AppDataPath.GetAppCacheDbPath(), item, AppSettingService.GetUserId());
        }
示例#3
0
        private async void RemoveItemFromShelf(Book item)
        {
            var url  = SoduPageValue.BookShelfPage + "?id=" + item.BookId;
            var html = await GetHtmlData2(url, false, false);

            if (html.Contains("取消收藏成功"))
            {
                ToastHelper.ShowMessage(item.BookName + "已从在线书架移除");
                Books.Remove(item);
                DbBookShelf.RemoveBook(AppDataPath.GetAppCacheDbPath(), item, AppSettingService.GetUserId());
            }
            else
            {
                ToastHelper.ShowMessage(item.BookName + "移除失败");
            }
        }
示例#4
0
        public async Task <bool> CompareWithLocalCache(List <Book> list)
        {
            var result = false;
            await Task.Run(() =>
            {
                try
                {
                    if (list == null || list.Count == 0)
                    {
                        return;
                    }

                    var localCathes = DbBookShelf.GetBooks(AppDataPath.GetAppCacheDbPath(), AppSettingService.GetUserId());
                    if (localCathes == null || localCathes.Count == 0)
                    {
                        DbBookShelf.InsertOrUpdateBooks(AppDataPath.GetAppCacheDbPath(), list, AppSettingService.GetUserId());
                        return;
                    }

                    foreach (var book in list)
                    {
                        var item = localCathes.FirstOrDefault(b => b.BookId == book.BookId);
                        if (item == null)
                        {
                            continue;
                        }

                        book.IsNew = !ReplaceChar(book.NewestChapterName).Equals(ReplaceChar(item.LastReadChapterName));
                        book.LastReadChapterName = item.LastReadChapterName;
                    }
                    result = true;
                    DbBookShelf.InsertOrUpdateBooks(AppDataPath.GetAppCacheDbPath(), list, AppSettingService.GetUserId());
                }
                catch (Exception ex)
                {
                    Debug.WriteLine(ex.Message + "\n" + ex.StackTrace);
                    result = false;
                }
            });

            return(result);
        }
示例#5
0
        public void GetCacheData()
        {
            if (!CookieHelper.CheckLogin())
            {
                return;
            }

            Task.Run(() =>
            {
                if (string.IsNullOrEmpty(AppSettingService.GetUserId()))
                {
                    return;
                }
                var books = DbBookShelf.GetBooks(AppDataPath.GetAppCacheDbPath(), AppSettingService.GetUserId());
                DispatcherHelper.CheckBeginInvokeOnUI(() =>
                {
                    books.ForEach(p => Books.Add(p));
                });
            });
        }
        public async void OnAddToOnlineShelfCommand(object obj)
        {
            if (!App.IsPro)
            {
                ToastHelper.ShowMessage("这是专业版功能,购买专业版即可使用");
                return;
            }

            var book = obj as Book;

            if (book == null)
            {
                return;
            }

            if (!ViewModelInstance.Instance.Main.IsLogin && ViewModelInstance.Instance.Setting.IsPro)
            {
                ToastHelper.ShowMessage("您尚未登陆,请登录后操作");
                return;
            }
            if (ViewModelInstance.Instance.OnLineBookShelf.Books.FirstOrDefault(p => p.BookId == book.BookId) != null)
            {
                return;
            }

            var url  = string.Format(SoduPageValue.AddToShelfPage, book.BookId);
            var html = await GetHtmlData2(url, false, false);

            if (html.Contains("{\"success\":true}"))
            {
                var temp = book.Clone();
                temp.LastReadChapterName = temp.NewestChapterName;
                var result = DbBookShelf.InsertOrUpdateBook(AppDataPath.GetAppCacheDbPath(), temp, AppSettingService.GetKeyValue(SettingKey.UserName) as string);
                ViewModelInstance.Instance.OnLineBookShelf.Books.Insert(0, temp);
                ToastHelper.ShowMessage($"成功添加{book.BookName}到在线书架");
            }
            else
            {
                ToastHelper.ShowMessage(book.BookName + " 添加至个人书架失败");
            }
        }
示例#7
0
        public bool CompareWithLocalCache(List <Book> onlineList, List <Book> localList)
        {
            var result = false;

            try
            {
                if (onlineList == null || onlineList.Count == 0)
                {
                    return(false);
                }
                if (localList == null || localList.Count == 0)
                {
                    return(false);
                }

                var userId = AppSettingService.GetUserId();

                foreach (var book in onlineList)
                {
                    var item = localList.FirstOrDefault(b => b.BookId == book.BookId);
                    if (item == null)
                    {
                        continue;
                    }

                    book.IsNew = !ReplaceChar(book.NewestChapterName).Equals(ReplaceChar(item.LastReadChapterName));
                    book.LastReadChapterName = item.LastReadChapterName;
                }
                if (onlineList.Any(p => p.IsNew))
                {
                    result = true;
                }
                DbBookShelf.InsertOrUpdateBooks(AppDataPath.GetAppCacheDbPath(), onlineList, userId);
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message + "\n" + ex.StackTrace);
                result = false;
            }
            return(result);
        }