public IEnumerable <SportsHallType> SelectAll()
        {
            var hallsTypes = new List <SportsHallType>();

            // Get data from database.
            using (SqlConnection connection = new SqlConnection(ConnectionString))
            {
                connection.Open();

                using (SqlCommand command = new SqlCommand())
                {
                    command.Connection  = connection;
                    command.CommandType = CommandType.Text;
                    command.CommandText = "SELECT * FROM tblClassType";

                    using (SqlDataReader reader = command.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            var sportsHall = new SportsHallType()
                            {
                                Id   = (int)reader["Id"],
                                Name = (string)reader["Name"]
                            };

                            hallsTypes.Add(sportsHall);
                        }
                    }
                }
            }

            return(hallsTypes);
        }
        public IEnumerable <SportsHall> GetSportsHallsByFilter(SportsHallType sportsHallType, int minArea, int maxArea, decimal minRate, decimal maxRate)
        {
            var sportsHalls = new List <SportsHall>();

            // Get data from database.
            using (SqlConnection connection = new SqlConnection(ConnectionString))
            {
                connection.Open();

                using (SqlCommand command = new SqlCommand())
                {
                    command.Connection  = connection;
                    command.CommandType = CommandType.Text;
                    command.CommandText = _getHallsByFilter;

                    command.Parameters.AddWithValue("@areaMin", minArea);
                    command.Parameters.AddWithValue("@areaMax", maxArea);
                    command.Parameters.AddWithValue("@rateMin", minRate);
                    command.Parameters.AddWithValue("@rateMax", maxRate);

                    if (sportsHallType != null)
                    {
                        command.Parameters.AddWithValue("@hallTypeId", sportsHallType.Id);
                        command.CommandText += "AND c.ClassTypeId = @hallTypeId";
                    }

                    using (SqlDataReader reader = command.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            var sportsHall = new SportsHall()
                            {
                                Id   = (int)reader["Id"],
                                Type = new SportsHallType()
                                {
                                    Id   = (int)reader["TypeId"],
                                    Name = (string)reader["TypeName"]
                                },
                                Area = (int)reader["Area"],
                                Rate = (decimal)reader["Rate"]
                            };
                            sportsHalls.Add(sportsHall);
                        }
                    }
                }
            }

            return(sportsHalls);
        }