Exemplo n.º 1
0
        public IEnumerable <Card> ReadCards(string data)
        {
            if (string.IsNullOrEmpty(data))
            {
                throw new ArgumentException("data");
            }

            this.mLoggingService.Trace("JSON data = {0}", data);

            JObject cardObject = JObject.Parse(data);

            IList <JToken> results = cardObject["cards"].Children().ToList();

            var settings = new JsonSerializerSettings();

            settings.MissingMemberHandling = MissingMemberHandling.Ignore;

            // Read set info
            MtgJsonSet setData = JsonConvert.DeserializeObject <MtgJsonSet>(data, settings);

            foreach (JToken result in results)
            {
                this.mLoggingService.Debug("Deserializing MtgJsonCard...");
                MtgJsonCard cardData = JsonConvert.DeserializeObject <MtgJsonCard>(result.ToString(), settings);
                this.mLoggingService.Debug("MtgJsonCard deserialized!");

                if (this.mSkipTokens)
                {
                    if (!string.IsNullOrEmpty(cardData.Layout) && cardData.Layout.ToLower() == "token")
                    {
                        this.mLoggingService.Debug("Card is a token, skipping...");

                        continue;
                    }
                }

                this.mLoggingService.Debug("Mapping data...");
                var card = this.mDataMapper.GetCard(cardData, setData.Name, setData.Code);
                this.mLoggingService.Debug("Data mapped for card '{0}'!", cardData.Name);

                yield return(card);
            }
        }
Exemplo n.º 2
0
        private List <MtgJsonCard> DeserializeJsonCards(string fileName)
        {
            string data = File.ReadAllText(fileName);

            JObject cardObject = JObject.Parse(data);

            IList <JToken> results = cardObject["cards"].Children().ToList();

            var settings = new JsonSerializerSettings();

            settings.MissingMemberHandling = MissingMemberHandling.Ignore;

            List <MtgJsonCard> cardData = new List <MtgJsonCard>();

            foreach (JToken result in results)
            {
                MtgJsonCard card = JsonConvert.DeserializeObject <MtgJsonCard>(result.ToString(), settings);
                cardData.Add(card);
            }

            return(cardData);
        }
 private MtgCardEntity Map(MtgJsonCard card)
 {
     return(new MtgCardEntity()
     {
         Artist = card.Artist,
         BorderId = _codesCache.GetEntityByCode <BorderEntity>(card.Border).Id,
         ConvertedManaCost = TryParseNullableDecimal(card.Cmc),
         Flavor = card.Flavor,
         IsReserved = card.Reserved ?? false,
         IsStarter = card.Starter ?? false,
         IsTimeShifted = card.TimeShifted ?? false,
         LayoutId = _codesCache.GetEntityByCode <LayoutEntity>(card.Layout).Id,
         Loyalty = TryParseNullableDecimal(card.Loyalty),
         ManaCost = card.ManaCost,
         MtgJsonId = card.Id,
         MultiverseId = card.MultiverseId,
         Name = card.Name,
         Number = card.Number,
         OriginalText = card.OriginalText,
         OriginalType = card.OriginalType,
         Power = card.Power,
         RarityId = _codesCache.GetEntityByCode <RarityEntity>(card.Rarity).Id,
         ReleaseDate = TryParseNullableDate(card.ReleaseDate),
         SetId = _codesCache.GetEntityByCode <SetEntity>(card.SetTypeCode).Id,
         Source = card.Source,
         Text = card.Text,
         Type = card.Type,
         Toughness = card.Toughness,
         PowerDecimal = TryParseNullableDecimal(card.Power),
         ToughnessDecimal = TryParseNullableDecimal(card.Toughness),
         Legalities = MapLegalities(card.Legalities),
         Colors = MapColors(card.Colors),
         Types = MapTypes(card.Types),
         Supertypes = MapSupertypes(card.SuperTypes),
         Subtypes = MapSubtypes(card.SubTypes)
     });
 }