public List <Card> GetCardList(Collection collection) { var cardNames = new List <string>(); var setCodes = new List <string>(); foreach (var collectionCard in collection.Cards) { cardNames.Add(collectionCard.Name); setCodes.Add(collectionCard.SetCode); } using (var db = new FortyLifeDbContext()) { var query = string.Empty; for (var i = 0; i < cardNames.Count; i++) { query += $"\"{cardNames[i]}\" " + (!string.IsNullOrEmpty(setCodes[i]) ? $"set:{setCodes[i]}" : string.Empty) + " or "; } var searchResultList = CardListRequest(query); if (searchResultList != null) { var cards = searchResultList.Data; foreach (var card in cards) { if (card != null) { card.CacheDate = DateTime.Now; if (card.ImageUris == null) { card.ImageUris = new ImageUris(); } if (card.IsDoubleFaced) { card.CardFaces[0].CacheDate = DateTime.Now; card.CardFaces[1].CacheDate = DateTime.Now; if (card.CardFaces[0].ImageUris == null) { card.CardFaces[0].ImageUris = new ImageUris(); } if (card.CardFaces[1].ImageUris == null) { card.CardFaces[1].ImageUris = new ImageUris(); } foreach (var i in card.CardFaces) { if (i.Colors != null) { i.ColorsString = PrimitiveListHandler.ToString(i.Colors); } } } if (card.Colors != null) { card.ColorsString = PrimitiveListHandler.ToString(card.Colors); } if (card.ColorIdentity != null) { card.ColorIdentityString = PrimitiveListHandler.ToString(card.ColorIdentity); } if (card.Games != null) { card.GamesString = PrimitiveListHandler.ToString(card.Games); } if (card.MultiverseIds != null) { card.MultiverseIdsString = PrimitiveListHandler.ToString(card.MultiverseIds); } //db.Cards.AddOrUpdate(card); //try //{ // db.SaveChanges(); //} //catch (DbEntityValidationException dbEx) //{ // foreach (var validationErrors in dbEx.EntityValidationErrors) // { // foreach (var validationError in validationErrors.ValidationErrors) // { // Trace.TraceInformation("Property: {0} Error: {1}", // validationError.PropertyName, // validationError.ErrorMessage); // } // } // throw; //} } } return(cards); } } return(null); }
public Card GetCard(string cardName, string setCode = "") { using (var db = new FortyLifeDbContext()) { Card card; //if (!string.IsNullOrEmpty(setCode)) //{ // if (db.Cards.Any(i => i.Name == cardName && i.Set == setCode && DbFunctions.DiffDays(i.CacheDate, DateTime.Now) < 7)) // { // var cards = db.Cards.Include(i => i.CardFaces); // card = cards.FirstOrDefault(i => i.Name == cardName && i.Set == setCode); // if (card != null) // { // // prep list data by parsing string data from db // foreach (var i in card.CardFaces) // { // if (i.ColorsString != null) // { // i.Colors = i.ColorsString.Split(',').ToList(); // } // } // card.Colors = card.ColorsString?.Split(',').ToList(); // card.ColorIdentity = card.ColorIdentityString?.Split(',').ToList(); // card.Games = card.GamesString?.Split(',').ToList(); // card.MultiverseIds = card.MultiverseIdsString?.Split(',').ToList(); // // return prepped card // return card; // } // } //} //else //{ // if (db.Cards.Any(i => i.Name == cardName && DbFunctions.DiffDays(i.CacheDate, DateTime.Now) < 7)) // { // var cards = db.Cards.Include(i => i.CardFaces); // card = cards.FirstOrDefault(i => i.Name == cardName); // if (card != null) // { // // prep list data by parsing string data from db // foreach (var i in card.CardFaces) // { // if (i.ColorsString != null) // { // i.Colors = i.ColorsString.Split(',').ToList(); // } // } // card.Colors = card.ColorsString?.Split(',').ToList(); // card.ColorIdentity = card.ColorIdentityString?.Split(',').ToList(); // card.Games = card.GamesString?.Split(',').ToList(); // card.MultiverseIds = card.MultiverseIdsString?.Split(',').ToList(); // // return prepped card // return card; // } // } //} var searchResultList = CardPrintingsRequest(cardName); if (searchResultList != null) { card = !string.IsNullOrEmpty(setCode) ? searchResultList.Data?.FirstOrDefault(i => string.Equals(i.Name, cardName, StringComparison.CurrentCultureIgnoreCase) && string.Equals(i.Set, setCode, StringComparison.CurrentCultureIgnoreCase)) : searchResultList.Data?.FirstOrDefault(i => string.Equals(i.Name, cardName, StringComparison.CurrentCultureIgnoreCase)); if (card != null) { card.CacheDate = DateTime.Now; if (card.ImageUris == null) { card.ImageUris = new ImageUris(); } if (card.IsDoubleFaced) { card.CardFaces[0].CacheDate = DateTime.Now; card.CardFaces[1].CacheDate = DateTime.Now; if (card.CardFaces[0].ImageUris == null) { card.CardFaces[0].ImageUris = new ImageUris(); } if (card.CardFaces[1].ImageUris == null) { card.CardFaces[1].ImageUris = new ImageUris(); } foreach (var i in card.CardFaces) { if (i.Colors != null) { i.ColorsString = PrimitiveListHandler.ToString(i.Colors); } } } if (card.Colors != null) { card.ColorsString = PrimitiveListHandler.ToString(card.Colors); } if (card.ColorIdentity != null) { card.ColorIdentityString = PrimitiveListHandler.ToString(card.ColorIdentity); } if (card.Games != null) { card.GamesString = PrimitiveListHandler.ToString(card.Games); } if (card.MultiverseIds != null) { card.MultiverseIdsString = PrimitiveListHandler.ToString(card.MultiverseIds); } //db.Cards.AddOrUpdate(card); //try //{ // db.SaveChanges(); //} //catch (DbEntityValidationException dbEx) //{ // foreach (var validationErrors in dbEx.EntityValidationErrors) // { // foreach (var validationError in validationErrors.ValidationErrors) // { // Trace.TraceInformation("Property: {0} Error: {1}", // validationError.PropertyName, // validationError.ErrorMessage); // } // } // throw; //} } return(card); } } return(null); }