コード例 #1
0
        public void ImportFromTheGatherer()
        {
            List <CardRequest> lstRequest = new List <CardRequest>();
            uint   iPage          = 0;
            int    iMaxCardNumber = 0;
            bool   bFinished      = false;
            string sSetSearch     = "&set=[\"" + sSetName.Replace(" ", "+") + "\"]";

            while (!bFinished)
            {
                // Generate Search link
                string sSetSearchURL = sSearchPage + iPage.ToString() + sShortType + sOutputType + sSetSearch;
                var    oPageSet      = HtmlUtils.GetHTML(sSetSearchURL);
                var    lstCards      = oPageSet.DocumentNode.SelectNodes("//tr[@class='cardItem']");
                if (lstCards == null)
                {
                    break;
                }
                foreach (var card in lstCards)
                {
                    var numberNode  = card.SelectSingleNode(".//td[@class='number']");
                    int iCardNumber = int.Parse(numberNode.InnerHtml);
                    if (iCardNumber > iMaxCardNumber)
                    {
                        iMaxCardNumber = iCardNumber;
                    }
                    else
                    {
                        bFinished = true; break;
                    }
                    var    linkNode  = card.SelectSingleNode(".//a[@class='nameLink']");
                    string sCardName = HtmlUtils.CleanInnerText(linkNode.InnerText);
                    string sUrl      = sCardPage + linkNode.Attributes["href"].Value.Replace("../Card/Details.aspx?", "");
                    lstRequest.Add(new CardRequest(sCardName, sUrl));
                }
                ++iPage;
            }
            int i = 0;

            foreach (var oRequest in lstRequest)
            {
                ++i;
                Card oNewCard = new Card(oRequest.m_sCardName, sSetName);
                Console.WriteLine("Importing Card[" + i.ToString() + "/" + lstRequest.Count + "]:" + oRequest.m_sCardName);
                oNewCard.ImportFromTheGatherer(oRequest.m_sUrl);
                m_lstCards.Add(oNewCard);
            }
        }