Esempio n. 1
0
        public static void InsertCardTag(string tag, string card)
        {
            using (var db = new MtgEntities())
            {
                try
                {
                    var emTag  = db.Tags.Single(t => t.TagName == tag);
                    var emCard = db.Cards.Single(c => c.CardName == card);

                    var emCardTag = new CardTag
                    {
                        CardId = emCard.CardId,
                        TagId  = emTag.TagId
                    };

                    db.CardTags.Add(emCardTag);
                    db.SaveChanges();
                }
                catch (Exception e)
                {
                    Console.WriteLine();
                    Console.WriteLine($"Unable to save the tag {tag} to the card {card}.");
                    Console.WriteLine(e);
                }
            }
        }
Esempio n. 2
0
        public static void InsertCard(CardApiDm cardApi, string setId)
        {
            using (var db = new MtgEntities())
            {
                try
                {
                    cardApi.Editions = cardApi.Editions.Where(e => e.Set_Id == setId).ToList();
                    var em = CardMapper.Map(cardApi);

                    if (db.Cards.Any(c => c.CardId == em.CardId))
                    {
                        foreach (var cardSet in em.CardSets.Where(s => !db.CardSets.Any(dbSet => dbSet.CardId == s.CardId && dbSet.SetId == s.SetId)))
                        {
                            db.CardSets.Add(cardSet);
                        }
                    }
                    else
                    {
                        db.Cards.Add(em);
                    }

                    db.SaveChanges();
                }
                catch (Exception e)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine($"Unable to save the card '{cardApi.Name}' Excpetion:");
                    Console.WriteLine(e);
                    Console.WriteLine();
                    Console.ForegroundColor = ConsoleColor.White;
                }
            }
        }
Esempio n. 3
0
 public static DeckDm GetDeck(string deckName)
 {
     using (var db = new MtgEntities())
     {
         var deck = DeckMapper.Map(db.Decks.SingleOrDefault(d => d.DeckName == deckName));
         return(deck);
     }
 }
Esempio n. 4
0
 public static void UpdateDeckName(DeckDm deck)
 {
     using (var db = new MtgEntities())
     {
         var sql = $"Update Deck Set DeckName = '{deck.DeckName}' Where DeckId = {deck.Id}";
         db.Database.ExecuteSqlCommand(sql);
     }
 }
Esempio n. 5
0
        public static IEnumerable <CardDm> QueryCards(string tribal, string name, bool?commader, List <string> colors, string type, string tag, int numberToReturn = -1)
        {
            using (var db = new MtgEntities())
            {
                var invalidColors = GetInvalidColors(colors);
                var white         = "";
                var blue          = "";
                var black         = "";
                var red           = "";
                var green         = "";

                foreach (var color in invalidColors)
                {
                    switch (color)
                    {
                    case "{W}":
                        white = color;
                        break;

                    case "{U}":
                        blue = color;
                        break;

                    case "{B}":
                        black = color;
                        break;

                    case "{R}":
                        red = color;
                        break;

                    case "{G}":
                        green = color;
                        break;
                    }
                }
                var takeNumber = numberToReturn > 0 ? numberToReturn : int.MaxValue;

                var cards = db.Cards.Where(c =>
                                           (tag == null || c.CardTags.Any(ct => ct.Tag.TagName == tag)) &&
                                           (tribal == null || c.SubTypes.ToLower().Contains(tribal) || c.RulesText.ToLower().Contains(tribal)) &&
                                           (commader == null || c.Types.Contains("Legendary")) &&
                                           (name == null || c.CardName.ToLower() == name.ToLower()) &&
                                           (white == "" || (!c.Cost.Contains(white) && !c.RulesText.Contains(white))) &&
                                           (blue == "" || (!c.Cost.Contains(blue) && !c.RulesText.Contains(blue))) &&
                                           (black == "" || (!c.Cost.Contains(black) && !c.RulesText.Contains(black))) &&
                                           (red == "" || (!c.Cost.Contains(red) && !c.RulesText.Contains(red))) &&
                                           (green == "" || (!c.Cost.Contains(green) && !c.RulesText.Contains(green))) &&
                                           //(colors == null || invalidColors.All(i => !c.Cost.Contains(i) && !c.RulesText.Contains(i))) && //Super Wish this wouldn't blow up.
                                           (type == null || c.Types.Contains(type))
                                           ).Take(takeNumber);

                foreach (var card in cards)
                {
                    yield return(CardMapper.Map(card));
                }
            }
        }
Esempio n. 6
0
 private static void DeleteCard(DeckDm deck, CardDm card)
 {
     using (var db = new MtgEntities())
     {
         var deckCard = db.DeckCards.Single(dc => dc.DeckId == deck.Id && dc.CardId == card.Id);
         db.DeckCards.Remove(deckCard);
         db.SaveChanges();
     }
 }
Esempio n. 7
0
        public static void InsertDeck(DeckDm deck)
        {
            var newDeck = DeckMapper.Map(deck);

            using (var db = new MtgEntities())
            {
                db.Decks.Add(newDeck);
                db.SaveChanges();
            }
        }
Esempio n. 8
0
 public static IEnumerable <CardDm> GetAllCards()
 {
     using (var db = new MtgEntities())
     {
         foreach (var dbCard in db.Cards)
         {
             yield return(CardMapper.Map(dbCard));
         }
     }
 }
Esempio n. 9
0
        public static IEnumerable <CardDm> GetAllCardsByGivenSubtype(string subtype)
        {
            using (var db = new MtgEntities())
            {
                var legalCards = db.Cards
                                 .Where(c => c.SubTypes.Contains(subtype));

                foreach (var card in legalCards)
                {
                    yield return(CardMapper.Map(card));
                }
            }
        }
Esempio n. 10
0
        public static void Delete(string deckName)
        {
            using (var db = new MtgEntities())
            {
                var deck = db.Decks.Single(dc => dc.DeckName == deckName);

                var sql = $"Delete DeckCards Where DeckId = {deck.DeckId}";
                db.Database.ExecuteSqlCommand(sql);

                db.Decks.Remove(deck);
                db.SaveChanges();
            }
        }
Esempio n. 11
0
        public static IEnumerable <CardDm> GetCommandersByPartialName(string cardName)
        {
            using (var db = new MtgEntities())
            {
                cardName = cardName.ToLower();
                var commanders = db.Cards
                                 .Where(c => c.Types.Contains("Legendary") && c.CardName.ToLower().Contains(cardName));

                foreach (var card in commanders)
                {
                    yield return(CardMapper.Map(card));
                }
            }
        }
Esempio n. 12
0
        public static IEnumerable <CardDm> FindTribalCommandersForType(string tribalType)
        {
            using (var db = new MtgEntities())
            {
                tribalType = tribalType.ToLower();
                var commanders = db.Cards
                                 .Where(c => c.Types.Contains("Legendary") &&
                                        (c.SubTypes.ToLower().Contains(tribalType) || c.RulesText.ToLower().Contains(tribalType)));

                foreach (var card in commanders)
                {
                    yield return(CardMapper.Map(card));
                }
            }
        }
Esempio n. 13
0
 public static CardDm GetCardByName(string cardName)
 {
     using (var db = new MtgEntities())
     {
         try
         {
             return(CardMapper.Map(db.Cards.Single(c => c.CardName == cardName)));
         }
         catch (Exception)
         {
             Console.WriteLine();
             Console.WriteLine($"Unable to find the card {cardName}.");
             return(null);
         }
     }
 }
Esempio n. 14
0
        private static void InsertCard(string deckName, CardDm card)
        {
            var deck = GetDeck(deckName);

            var deckCard = new DeckCard
            {
                DeckCardsId = 0,
                DeckId      = deck.Id,
                CardId      = card.Id
            };

            using (var db = new MtgEntities())
            {
                db.DeckCards.Add(deckCard);
                db.SaveChanges();
            }
        }
Esempio n. 15
0
        public static IEnumerable <CardDm> GetAllCommanderLegalCardInGivenColors(List <string> desiredColors)
        {
            Console.WriteLine("Attempting to pull from DBs");
            using (var db = new MtgEntities())
            {
                var invalidColors = GetInvalidColors(desiredColors);
                var legalCards    = db.Cards
                                    .Where(c => c.Commander == "legal")
                                    .Where(c => invalidColors.All(i => !c.Cost.Contains(i) && !c.RulesText.Contains(i)));

                foreach (var card in legalCards)
                {
                    yield return(CardMapper.Map(card));
                }
            }
            Console.WriteLine("finished db");
        }
Esempio n. 16
0
        public static void InsertTag(string tagName)
        {
            using (var db = new MtgEntities())
            {
                try
                {
                    var em = new Tag
                    {
                        TagName = tagName
                    };

                    db.Tags.Add(em);
                    db.SaveChanges();
                }
                catch (Exception e)
                {
                    Console.WriteLine();
                    Console.WriteLine($"Unable to save the setApi '{tagName}' Excpetion:");
                    Console.WriteLine(e);
                }
            }
        }
Esempio n. 17
0
        public static IEnumerable <CardDm> GetLegalCardsForGivenFormat(string format)
        {
            using (var db = new MtgEntities())
            {
                format = format.ToLower();
                var cards = Enumerable.Empty <Card>();

                switch (format)
                {
                case "commander":
                    cards = db.Cards.Where(c => c.Commander == "legal");
                    break;

                case "standard":
                    cards = db.Cards.Where(c => c.Standard == "legal");
                    break;

                case "legacy":
                    cards = db.Cards.Where(c => c.Legacy == "legal");
                    break;

                case "vintage":
                    cards = db.Cards.Where(c => c.Vintage == "legal");
                    break;

                case "modern":
                    cards = db.Cards.Where(c => c.Modern == "legal");
                    break;
                }

                foreach (var card in cards)
                {
                    yield return(CardMapper.Map(card));
                }
            }
        }