public static CardDetailEntry ExtractImagePath(string html)
        {
            HtmlDocument doc = CommonHelpers.GetHtmlDocumentFromHtml(html);

            var results = new List<HtmlNode>();
            HtmlNodeHelpers.FindNodesWithNameAndAttribute(doc.DocumentNode, "img", "src", new List<HtmlNode>(), results);

            Debug.Assert(results.Count > 0);
            HtmlNode imageNode = results[0];
            var completeUri = new Uri(new Uri(CommonHelpers.BaseCardUrl),
                                      HtmlNodeHelpers.GetAttributeValue(imageNode, "src"));
            var detailEntry = new CardDetailEntryString {FieldName = CardFieldName.Image};
            detailEntry.AddData(new CardFieldDataLink {Data = completeUri.AbsoluteUri});
            return detailEntry;
        }
예제 #2
0
 private void AssignFieldFromEntry(CardDetailEntry entry)
 {
     switch (entry.FieldName)
     {
         case CardFieldName.CardName:
             CardName = (CardDetailEntryString) entry;
             break;
         case CardFieldName.ManaCost:
             ManaCost = (CardDetailEntrySequence) entry;
             break;
         case CardFieldName.ConvertedManaCost:
             if (!Int32.TryParse(((CardDetailEntryString) entry).Value, out ConvertedManaCost))
             {
                 Debug.Assert(false);
             }
             break;
         case CardFieldName.Types:
             Types = (CardDetailEntryString) entry;
             break;
         case CardFieldName.CardText:
             CardText = (CardDetailEntrySequence) entry;
             CardTextInnerHtml = entry.InnerHtmlCode;
             CardTextOuterHtml = entry.OuterHtmlCode;
             break;
         case CardFieldName.Watermark:
             Watermark = (CardDetailEntryString) entry;
             break;
         case CardFieldName.PowerToughness:
             ExtractPowerToughnessOrLoyalty(((CardDetailEntryString) entry).Value, out Power, out Toughness);
             break;
         case CardFieldName.Expansion:
             Expansion = (CardDetailEntrySequence) entry;
             break;
         case CardFieldName.Rarity:
             Rarity = (CardDetailEntryString) entry;
             break;
         case CardFieldName.CardNumber:
             CardNumber = (CardDetailEntryString) entry;
             break;
         case CardFieldName.Artist:
             Artist = (CardDetailEntryString) entry;
             break;
         case CardFieldName.CommunityRating:
             CommunityRating = (CardDetailEntryString) entry;
             break;
         case CardFieldName.Image:
             ImageUrl = (CardDetailEntryString) entry;
             break;
     }
 }