Пример #1
0
        public List <CardAbility> GetAllUniqueAbilities() // Läser data från databasen...
        {
            var sql = @"SELECT *
                        FROM CardAbilities
                        INNER JOIN AbilityType ON AbilitieTypeId = AbilityType.Id";

            using (SqlConnection connection = new SqlConnection(conString))
                using (SqlCommand command = new SqlCommand(sql, connection))
                {
                    connection.Open();

                    SqlDataReader reader = command.ExecuteReader();

                    var list = new List <CardAbility>();

                    while (reader.Read())
                    {
                        CardAbility p = new CardAbility
                        {
                            Value = reader.GetSqlInt32(2).Value,
                            Type  = (AbilityType)Enum.Parse(typeof(AbilityType), reader.GetSqlString(4).Value)
                        };

                        list.Add(p);
                    }
                    return(list);
                }
        }
Пример #2
0
        public List <Card> GetAllUniqueCards() // Läser data från databasen
        {
            var sql = @"SELECT * FROM Card
                        INNER JOIN CardType ON CardTypeId = CardType.Id
                        LEFT JOIN AbilityToCard On AbilityToCard.CardId = Card.Id
                        LEFT JOIN CardAbilities ON CardAbilities.Id = AbilityToCard.CardAbility
                        LEFT JOIN AbilityType ON AbilitieTypeId = AbilityType.Id";

            using (SqlConnection connection = new SqlConnection(conString))
                using (SqlCommand command = new SqlCommand(sql, connection))
                {
                    connection.Open();

                    SqlDataReader reader = command.ExecuteReader();

                    var list = new List <Card>();

                    while (reader.Read())
                    {
                        if (!list.Any(x => x.Id == reader.GetSqlInt32(0).Value)) //Riktigt snygg lösning för att kolla om ett id finns i databasen, jag copy-pastear den hehe
                        {
                            Card c = new Card
                            {
                                Id   = reader.GetSqlInt32(0).Value,
                                Name = reader.GetSqlString(1).Value,
                                Cost = reader.GetSqlInt32(2).Value,
                                Type = (CardType)Enum.Parse(typeof(CardType), reader.GetSqlString(7).Value)
                            };

                            if (!reader.IsDBNull(4) && !reader.IsDBNull(5)) //Snygg hantering av null så att inte programmet blir argt =)
                            {
                                c.Attack = reader.GetSqlInt32(4).Value;
                                c.Health = reader.GetSqlInt32(5).Value;
                            }

                            list.Add(c);
                        }


                        if (!reader.IsDBNull(8))
                        {
                            CardAbility cardAbility = new CardAbility
                            {
                                Type  = (AbilityType)Enum.Parse(typeof(AbilityType), reader.GetSqlString(14).Value),
                                Value = reader.GetSqlInt32(12).Value
                            };

                            list[list.Count - 1].Abilities.Add(cardAbility);
                        }
                    }
                    return(list);
                }
        }