Exemplo n.º 1
0
        //method to retrieve specialties from join table
        public List <Specialty> GetSpecialties()
        {
            MySqlConnection conn = DB.Connection();

            conn.Open();
            var cmd = conn.CreateCommand() as MySqlCommand;

            cmd.CommandText = @"SELECT specialty_id FROM specialty_stylist WHERE stylist_id = @StylistId;";

            MySqlParameter stylistIdParameter = new MySqlParameter();

            stylistIdParameter.ParameterName = "@StylistId";
            stylistIdParameter.Value         = _id;
            cmd.Parameters.Add(stylistIdParameter);

            var rdr = cmd.ExecuteReader() as MySqlDataReader;

            List <int> specialtyIds = new List <int> {
            };

            while (rdr.Read())
            {
                int specialtyId = rdr.GetInt32(0);
                specialtyIds.Add(specialtyId);
            }
            rdr.Dispose();

            List <Specialty> specialties = new List <Specialty> {
            };

            foreach (int specialtyId in specialtyIds)
            {
                var specialtyQuery = conn.CreateCommand() as MySqlCommand;
                specialtyQuery.CommandText = @"SELECT * FROM specialty WHERE id = @SpecialtyId;";

                MySqlParameter specialtyIdParameter = new MySqlParameter();
                specialtyIdParameter.ParameterName = "@SpecialtyId";
                specialtyIdParameter.Value         = specialtyId;
                specialtyQuery.Parameters.Add(specialtyIdParameter);

                var specialtyQueryRdr = specialtyQuery.ExecuteReader() as MySqlDataReader;
                while (specialtyQueryRdr.Read())
                {
                    int    thisSpecialtyId      = specialtyQueryRdr.GetInt32(0);
                    string specialtyTitle       = specialtyQueryRdr.GetString(1);
                    string specialtyDescription = specialtyQueryRdr.GetString(2);

                    Specialty foundSpecialty = new Specialty(specialtyTitle, specialtyDescription, thisSpecialtyId);
                    specialties.Add(foundSpecialty);
                }

                specialtyQueryRdr.Dispose();
            }

            conn.Close();
            if (conn != null)
            {
                conn.Dispose();
            }
            return(specialties);
        }