public bool checkInstrumentGruppeObject(InstrumentGruppe grp)
 {
     //Tjekker først om navn er null eller tom
     if (!string.IsNullOrEmpty(grp.Navn))
     {
         //tkekker om navn er et andet tegn end bogstav eller tal
         if (CheckSpecificSymbols(grp.Navn))
         {
             return(false);
         }
     }
     else
     {
         return(false);
     }
     //tjekker om beskrivelse er null eller tom
     if (!string.IsNullOrEmpty(grp.Beskrivelse))
     {
         //tkekker om navn er et andet tegn end bogstav eller tal
         if (CheckSpecificSymbols(grp.Beskrivelse))
         {
             return(false);
         }
     }
     else
     {
         return(false);
     }
     return(true);
 }
        public async Task <bool> OpretInstrumentGruppeAsync(InstrumentGruppe gruppe)
        {
            await Task.Delay(5000);

            GeneralValidator val = new GeneralValidator();

            //Tjekker om metoden har modtaget et gyldigt instrumentgruppe objekt
            if (val.checkInstrumentGruppeObject(gruppe))
            {
                //kalder OpretInstrumentAsync metoden på datahandler objektet med instrument som argument og returnere hvorvidt oprettelsen har været successfuld
                return(await dataHandler.OpretInstrumentGruppeAsync(gruppe));
            }
            //Har metoden ikke modtaget et gyldigt instrument returnere den false
            return(false);
        }
        public async Task <InstrumentGruppe> HentInstrumentGruppeAsync(int id)
        {
            //Instanciere en ny instrumentgruppe hvis properties skal sættes til at være lig data hentet fra database
            InstrumentGruppe grp = new InstrumentGruppe();
            //Instanciere en sqlcommand som tager en query der vælger alle data fra InstrumenterGruppe på basis af det modtagne Id. Derudover anvender den den conn sqlconnection variablen som connection
            SqlCommand cmd = new SqlCommand("SELECT * FROM InstrumentGrupper WHERE Id = @Id;", conn);

            cmd.Parameters.AddWithValue("@Id", id);
            //I tilfælde af der opstår fejl under oprettelse af forbindelse til database sættes kode associeret med forbindelsen i en trycatch
            try
            {
                //Åbner forbindelse til databasen
                await conn.OpenAsync();

                //Sætter en sqldatareader variabel der modtager en sqldatareader med executereaderasync metoden på sqlcommand objektet.
                SqlDataReader reader = await cmd.ExecuteReaderAsync();

                //Sætter readeren til at læse. Læser den succesfuldt returnere den true. Derfor sættes den i en condition
                //i tilfælde af læsning ikke lykkedes. Udenfor en vil den bare læse den første række der falder indenfor de kriterier der er sat i select query
                if (await reader.ReadAsync())
                {
                    //Sætter properties ud fra den række der er læst
                    grp.Id   = (int)reader["Id"];
                    grp.Navn = (string)reader["Navn"];
                    grp.Navn = (string)reader["Beskrivelse"];
                }
                else
                {
                    grp = null;
                }
                //lukker læsning og connection
                reader.Close();
                conn.Close();
            }
            catch
            {
                //hvis der er opstået en fejl under ovenstående eksekvering sættes objektet til at være null
                grp = null;
            }
            //returnere objektet
            return(grp);
        }
        public async Task <bool> OpretInstrumentGruppeAsync(InstrumentGruppe gruppe)
        {
            //Sætter returvariabel der fortæller om metode er eksekveret uden problemer, til som udgangspunkt at være true
            bool   executeSuccess;
            string query = "INSERT INTO InstrumentGrupper(Navn, Beskrivelse) VALUES (@Navn, @Beskrivelse);";
            //Instanciere et SqlCommand objekt som anvender query samt connection variabelgfdsgfsd
            SqlCommand cmd = new SqlCommand(query, conn);

            //værdier associeres med parametre for den ovenstående query
            cmd.Parameters.AddWithValue("@Navn", gruppe.Navn);
            cmd.Parameters.AddWithValue("@Beskrivelse", gruppe.Beskrivelse);
            try
            {
                //åbner forbindelse til databasen
                await conn.OpenAsync();

                //Eksekvere SQL op imod databasen
                if (await cmd.ExecuteNonQueryAsync() == 1)
                {
                    executeSuccess = true;
                }
                else
                {
                    executeSuccess = false;
                }
                //Lukker forbindelsne
                conn.Close();
            }
            catch
            {
                //Er der opstået en fejl er executeSuccess false
                executeSuccess = false;
            }
            //returnere hvorvidt metoden er kørt successfuldt eller ej
            return(executeSuccess);
        }