Ejemplo n.º 1
0
        public void GetBooks()
        {
            var task = browser.EvaluateScriptAsync(
                @"
                (function() {
                    var arr = [], l = document.getElementsByTagName('a');
                    for(var i=0; i<l.length; i++) {
                        if(l[i].href.indexOf('ereader.chegg.com/#/books/') > -1) {
                            arr.push(l[i].href + '$$$' + l[i].getElementsByTagName('img')[0].src + l[i].innerText.split('\n').join('$$$') + '@@@');
                        }
                    }
                    return arr.toString();
                 })()"
                );

            task.ContinueWith(t =>
            {
                if (!t.IsFaulted)
                {
                    var response = t.Result;
                    if (response.Success && response.Result != null && (string)response.Result != "")
                    {
                        this.Invoke((MethodInvoker) delegate { this.booksListView.Items.Clear(); });

                        string[] books = response.Result.ToString().Split(new[] { "@@@," }, StringSplitOptions.None);

                        ImageList images = new ImageList();
                        images.ImageSize = new Size(100, 122);
                        int listIndex    = 0;

                        foreach (string book in books)
                        {
                            string[] bookDetails = book.Split(new[] { "$$$" }, StringSplitOptions.None);

                            WriteToLogs(book);

                            this.Invoke((MethodInvoker) delegate
                            {
                                images.Images.Add(LoadImage(bookDetails[1]));
                                this.booksListView.LargeImageList = images;
                                this.booksListView.Items.Add(
                                    bookDetails[2] + "\n" +                                                         //Title of Book
                                    bookDetails[3].Split(new[] { "ISBN: " }, StringSplitOptions.None)[0] + "\n" +   //Author of Book
                                    bookDetails[3].Split(new[] { "ISBN: " }, StringSplitOptions.None)[1],           //eISBN of Book
                                    listIndex);
                            });
                            listIndex++;
                        }
                    }
                }
            }, TaskScheduler.Default);

            WriteToLogs("Successfully retrieved books.");
        }