예제 #1
0
        private async Task <string> GetHtmlData(BookCatalog catalog, HttpHelper http)
        {
            string resultHtml = null;

            if (catalog == null)
            {
                return(null);
            }
            try
            {
                if (this.BookEntity.IsLocal)
                {
                    resultHtml = await GetCatafromDatabase(catalog);

                    if (!string.IsNullOrEmpty(resultHtml))
                    {
                        return(resultHtml);
                    }
                }
                resultHtml = await AnalysisContentService.GetHtmlContent(http, catalog.CatalogUrl);
            }
            catch (Exception)
            {
                resultHtml = null;
            }
            return(resultHtml);
        }
예제 #2
0
        public static BookCatalog SelectBookCatalogById(string path, string bookId, string catalogUrl)
        {
            BookCatalog result = null;

            Debug.WriteLine("进入数据库");
            using (var db = new SQLiteConnection(new SQLitePlatformWinRT(), path))
            {
                try
                {
                    db.BusyTimeout = TimeSpan.FromMilliseconds(1);
                    db.CreateTable <BookCatalog>();
                    db.RunInTransaction(() =>
                    {
                        try
                        {
                            var catalog = (from m in db.Table <BookCatalog>()
                                           where m.BookId == bookId && m.CatalogUrl == catalogUrl
                                           select m).FirstOrDefault();

                            result = catalog;
                        }
                        catch (Exception e)
                        {
                            Debug.WriteLine(e.Message + "\n" + e.StackTrace);
                            result = null;
                        }
                    });
                }
                catch (Exception e)
                {
                    Debug.WriteLine(e.Message + "\n" + e.StackTrace);
                }
            }
            return(result);
        }
예제 #3
0
        public ActionResult AddBookPage(BookCatalog book)
        {
            ViewBag.Message = "Your add book page.";
            book.OnPost();

            return(View());
        }
예제 #4
0
        // Initialize state of all UI componets
        public void InitializeUI()
        {
            InitializeMenu();

            // Unset category
            categoriesComboBox.SelectedItem = -1;

            // Intialize book table
            BookCatalog bookCat = new BookCatalog();

            DsBookCat = bookCat.GetBookInfo();
            Console.WriteLine(DsBookCat.ToString());

            this.DataContext = DsBookCat.Tables["Category"];

            // Intialize book order context (resets order table)
            bookOrder = new BookOrder();
            this.listViewOrders.ItemsSource = bookOrder.OrderItemList;

            // Intialize status bar message
            this.textBlockStatus.Text = "Please login before proceeding to checkout.";

            // Close any windows or dialogs
            if (UserProfile != null)
            {
                UserProfile.Close();
                UserProfile = null;
            }
        }
예제 #5
0
        internal void UpdateData()
        {
            BookCatalog bookCat = new BookCatalog();

            dsBookCat        = bookCat.GetAllBookInfo();
            this.DataContext = dsBookCat.Tables["Category"];
        }
        /// <summary>
        /// 获取本所有地数据库目录数据
        /// </summary>
        private void SetLocalBookCatalogsData(BookCatalog catalog)
        {
            Task.Run(() =>
            {
                IsPreLoadingCatalog = true;

                var catalogs = DbLocalBook.SelectBookCatalogsByBookId(AppDataPath.GetLocalBookDbPath(),
                                                                      CurrentBook.BookId);

                CurrentBook.CatalogList = catalogs;

                if (catalogs == null || catalogs.Count <= 0)
                {
                    return;
                }

                var temp = catalogs.LastOrDefault(p => p.CatalogUrl == catalog.CatalogUrl);

                DispatcherHelper.CheckBeginInvokeOnUI(() =>
                {
                    CatalogCount = CurrentBook.CatalogList.Count;

                    if (temp != null)
                    {
                        CurrentCatalog = temp;
                    }
                });

                IsPreLoadingCatalog = false;
            });
        }
        /// <summary>
        /// 获取在线数据具体实现方法
        /// </summary>
        /// <param name="catalog"></param>
        /// <param name="retryCount"></param>
        /// <returns></returns>
        private async Task <string> GetCatalogContentFromWeb(BookCatalog catalog, int retryCount = 3)
        {
            var i = 0;

            IsCancleRequest = false;
            string html = null;

            while (i <= retryCount)
            {
                if (IsCancleRequest)
                {
                    Debug.WriteLine($"用户取消请求操作");
                    break;
                }
                html = await GetHtmlData(catalog.CatalogUrl, false, false);

                html = AnalisysSourceHelper.AnalisysCatalogContent(catalog.CatalogUrl, html);
                if (!string.IsNullOrEmpty(html))
                {
                    break;
                }

                Debug.WriteLine($"加载正文内容失败,第{i + 1}次尝试");
                i++;
            }

            if (string.IsNullOrEmpty(html))
            {
                Debug.WriteLine("加载正文内容失败,不再次尝试");
            }
            return(html);
        }
예제 #8
0
 public void LoadData()
 {
     using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read))
     {
         BookCatalog = (BookCatalog)serializer.ReadObject(fs);
     }
 }
예제 #9
0
 public ReturnController(ClientManager cm, BookCatalog bc, MusicCatalog muc, MovieCatalog moc, MagazineCatalog mac, IdentityMap imap)
 {
     _cm          = cm;
     _bookc       = bc;
     _moviec      = moc;
     _musicc      = muc;
     _magazinec   = mac;
     _identityMap = imap;
 }
예제 #10
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="str"> 0  上一章  1 下一章</param>
        public void OnSwtichCommand(object str, bool page = false)
        {
            if (IsLoading)
            {
                return;
            }
            try
            {
                if (this.BookEntity.CatalogList == null || this.BookEntity.CatalogList.Count <= 1)
                {
                    ToastHeplper.ShowMessage("暂未获取到章节列表,无法切换");
                    return;
                }

                BookCatalog temp = null;
                //上一章
                if (str.ToString().Equals("0"))
                {
                    temp = GetPreCatalog();
                    this.NextCatalogContent = this.CurrentCatalogContent;
                }
                //下一章
                else if (str.ToString().Equals("1"))
                {
                    if (!string.IsNullOrEmpty(NextCatalogContent))
                    {
                        string tempStr = NextCatalogContent;
                        NextCatalogContent = null;
                        SetCurrentContent(NextCatalog, tempStr);
                        return;
                    }
                    else
                    {
                        temp = GetNextCatalog();
                    }
                }
                else if (str is BookCatalog)
                {
                    temp = str as BookCatalog;
                    this.NextCatalogContent = null;
                }

                if (temp != null && temp.CatalogName != null && temp.CatalogUrl != null)
                {
                    SetData(temp);
                }
                else
                {
                    NavigationService.NavigateTo(typeof(BookCatalogPage), this.BookEntity);
                    return;
                }
            }
            catch (Exception)
            {
                NavigationService.NavigateTo(typeof(BookCatalogPage), this.BookEntity);
            }
        }
예제 #11
0
 public HomeController(ClientStore cs, BookCatalog bc, MusicCatalog muc, MovieCatalog moc, MagazineCatalog mac, Search search)
 {
     _cs        = cs;
     _bookc     = bc;
     _moviec    = moc;
     _musicc    = muc;
     _magazinec = mac;
     _search    = search;
 }
예제 #12
0
        public bool UpdateAuthor(BookCatalog ca)
        {
            var model = db.BookCatalogs.Find(ca.ID);

            model.Name  = ca.Name;
            model.Alias = ca.Alias;
            db.SaveChanges();
            return(true);
        }
예제 #13
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            BookCatalog bookCat = new BookCatalog();

            dsBookCat = bookCat.GetBookInfo();
            //this.DataContext = dsBookCat.Tables["Category"];
            bookOrder = new BookOrder();
            userData  = new UserData();
            // this.orderListView.ItemsSource = bookOrder.OrderItemList;
        }
예제 #14
0
 public CartController(ClientManager cm, BookCatalog bc, MusicCatalog muc, MovieCatalog moc, MagazineCatalog mac, IdentityMap imap, ModelCopyCatalog modelCopyCatalog)
 {
     _cm               = cm;
     _bookc            = bc;
     _moviec           = moc;
     _musicc           = muc;
     _magazinec        = mac;
     _identityMap      = imap;
     _modelCopyCatalog = modelCopyCatalog;
 }
예제 #15
0
        public void ShowDialog(UIElement parent, ItemType type, IBookCatalogItem dataToEdit, Action <bool> completed)
        {
            BookCatalog    = new BookCatalog( );
            parentDetails  = parent;
            completeAction = completed;

            SetupData(type, dataToEdit);
            parentDetails.IsEnabled = false;
            Visibility = Visibility.Visible;
        }
예제 #16
0
        public Recommendations(int Uid)
        {
            InitializeComponent();
            UserId = Uid;
            BookCatalog bookCat   = new BookCatalog();
            DataSet     dsBookCat = bookCat.GetBookInfo();

            this.DataContext = dsBookCat.Tables["Category"];

            //RecomendationDataGrid.Items.Refresh();
        }
예제 #17
0
        public IActionResult OnPost()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            BookCatalog.AddBook(NewBook);

            return(RedirectToPage("./Index"));
        }
예제 #18
0
        public Store(UserData u)
        {
            InitializeComponent();
            this.user   = u;
            bookCatalog = new BookCatalog();
            bookCart    = new BookCart();

            dsBookCat        = bookCatalog.GetBookInfo();
            this.DataContext = dsBookCat.Tables["Category"];
            cart_val.Text    = "" + bookCart.cartItems(user.UserID);
        }
예제 #19
0
        public Item(UserData u, string i)
        {
            InitializeComponent();
            this.user = u;
            this.isbn = i;
            bookItem  = new BookCatalog();
            bookCart  = new BookCart();

            dsBookItem       = bookItem.load_Item(isbn);
            this.DataContext = dsBookItem.Tables["Item"];
            cart_val.Text    = "" + bookCart.cartItems(user.UserID);
        }
예제 #20
0
        public void MyCode()
        {
            BookCatalog books = new BookCatalog();

            books.Add(new Book("ISBN123", "War and Peace", "Tolstoj", 882));
            books.Add(new Book("ISBN456", "It", "King", 587));
            // books.AddBook(new Book("ISBN456", "It", "King", 587));

            Catalog <int, DVD> dvds = new Catalog <int, DVD>();

            dvds.Add(new DVD(17, "Heat", 153));
            dvds.Add(new DVD(32, "Se7en", 110));
        }
        public void TestSetup()
        {
            Book b1 = new Book("AD1337", "C# for All", "John Potter", 352);
            Book b2 = new Book("XS3220", "Gardening", "Alex Sohn", 220);
            Book b3 = new Book("DD0095", "Cars in the USA", "Susan Dreyer", 528);
            Book b4 = new Book("PT1295", "The World Narrators", "Dan Mygind", 256);

            _catalog = new BookCatalog();
            _catalog.AddBook(b1);
            _catalog.AddBook(b2);
            _catalog.AddBook(b3);
            _catalog.AddBook(b4);
        }
예제 #22
0
        public Dashboard(UserData u)
        {
            InitializeComponent();
            this.user   = u;
            bookHistory = new BookCatalog();
            bookCart    = new BookCart();

            dsBookHistory       = bookHistory.load_History(user.UserID);
            this.DataContext    = dsBookHistory.Tables["History"];
            cart_val.Content    = "" + bookCart.cartItems(user.UserID);
            total_books.Content = "" + bookCart.totalBooks(user.UserID);
            total_money.Content = "$" + bookCart.totalPrice(user.UserID);
        }
예제 #23
0
 public bool Insert(BookCatalog ca)
 {
     try
     {
         db.BookCatalogs.Add(ca);
         db.SaveChanges();
         return(true);
     }
     catch (Exception)
     {
         return(false);
     }
 }
예제 #24
0
        private void CloseDialog(bool result)
        {
            EditForm.ClearValue(DataContextProperty);
            BookCatalog = null;

            Visibility = Visibility.Hidden;
            parentDetails.IsEnabled = true;

            if (completeAction != null)
            {
                completeAction.Invoke(result);
            }
        }
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            BookCatalog bookCat = new BookCatalog();

            dsBookCat = bookCat.GetBookInfo();
            //this.DataContext = dsBookCat.Tables["Category"];
            bookOrder = new BookOrder();
            userData  = new UserData();

            if (!userData.LoggedIn)
            {
                this.statusTextBlock.Text = "You are currently browsing as a Guest. Please log in.";
            }
            // this.orderListView.ItemsSource = bookOrder.OrderItemList;
        }
예제 #26
0
 public JsonResult Save(BookCatalog catalog)
 {
     if (catalog.ID > 0)
     {
         return(Json(new
         {
             status = new BookCatalogDAO().UpdateAuthor(catalog)
         }));
     }
     else
     {
         return(Json(new
         {
             status = new BookCatalogDAO().Insert(catalog)
         }));
     }
 }
        public void Create()
        {
            var catalogs = _context.Set <BookCatalog>();

            var programming = new BookCatalog
            {
                Name      = "Programming",
                Order     = 1,
                Childrens = new List <BookCatalog>
                {
                    new BookCatalog {
                        Name = ".NET", Order = 1
                    },
                    new BookCatalog {
                        Name = "Python", Order = 3
                    },
                    new BookCatalog {
                        Name = "JavaScript", Order = 2
                    }
                }
            };

            var webDesign = new BookCatalog
            {
                Name      = "Web Design",
                Order     = 2,
                Childrens = new List <BookCatalog>
                {
                    new BookCatalog {
                        Name = "HTML", Order = 1
                    },
                    new BookCatalog {
                        Name = "CSS", Order = 2
                    }
                }
            };

            var other = new BookCatalog
            {
                Name  = "Other",
                Order = 3
            };

            catalogs.AddOrUpdate(x => x.Name, programming, webDesign, other);
            _context.SaveChanges();
        }
        public void LoadData(Book book)
        {
            ResDeta();
            CurrentBook = book.Clone();

            var catalog = new BookCatalog()
            {
                CatalogName = book.LastReadChapterName,
                CatalogUrl  = book.LastReadChapterUrl,
            };

            SetAddToLocalShelfButtonVisibility();

            SetCurrentContent(catalog);

            InitCatalogsData(catalog);
        }
        /// <summary>
        /// 获取目录内容入口
        /// </summary>
        /// <param name="catalog"></param>
        /// <param name="showLoading"></param>
        /// <returns></returns>
        public async Task <Tuple <List <string>, string> > GetCatalogContent(BookCatalog catalog, bool showLoading = false)
        {
            Tuple <List <string>, string> value = null;

            try
            {
                if (showLoading)
                {
                    DispatcherHelper.CheckBeginInvokeOnUI(() => { IsLoading = true; });
                }

                await Task.Run(async() =>
                {
                    try
                    {
                        if (CurrentBook.IsLocal || CurrentBook.IsTxt)
                        {
                            value = await GetLoaclBookCatalogContent(catalog);
                        }
                        else
                        {
                            value = await GetOnlineBookCatalogContent(catalog);
                        }
                    }
                    catch (Exception e)
                    {
                        Debug.WriteLine(e.Message + "\n" + e.StackTrace);
                    }
                });
            }
            catch (Exception e)
            {
                Debug.WriteLine(e.Message + "\n" + e.StackTrace);
                value = null;
            }
            finally
            {
                DispatcherHelper.CheckBeginInvokeOnUI(() =>
                {
                    IsLoading = false;
                });
            }
            return(value);
        }
        /// <summary>
        /// 获取目录页数据入口方法
        /// </summary>
        /// <param name="catalog"></param>
        public void InitCatalogsData(BookCatalog catalog)
        {
            Task.Run(() =>
            {
                if (CurrentBook == null || catalog?.CatalogUrl == null)
                {
                    return;
                }

                if (CurrentBook.IsLocal || CurrentBook.IsTxt)
                {
                    SetLocalBookCatalogsData(catalog);
                }
                else
                {
                    SetOnlineBookCatalogsData(AnalisysSourceHelper.GetCatalogPageUrl(catalog.CatalogUrl));
                }
            });
        }
 public async static Task<IEnumerable<ExtendedBookItem>> GetBookListByCatalogAsync(BookCatalog catalog, int page = 1)
 {
     using (var client = NewUserHttpClient())
     {
         var uri = new Uri(String.Format(CatalogPath, (int)catalog, page));
         var response = await client.GetStringAsync(uri);
         return ParseExtendedBookItems(response);
     }
 }