private void getFertigungsstatus(long Id)
        {
            Fertigungsstatus_Id = Id;

            Datenbank db = new Datenbank();
            DataTable dt = new DataTable();
            dt = db.ExecuteQuery("SELECT * FROM H_Fertigungsstatus WHERE Fertigungsstatus_Id = " + Id.ToString());

            foreach (DataRow dr in dt.Rows)
            {
                foreach (DataColumn dc in dt.Columns)
                {
                    var cellContent = dr[dc];
                    switch (dc.ColumnName)
                    {
                        case "Fertigungsstatus":
                            strFertigungsstatus = cellContent.ToString();
                            setBackground();
                            break;
                        default:
                            break;
                    }
                }
            }
        }
        public void LoadData_Start(){
            Datenbank db = new Datenbank();
            DataTable dt = new DataTable();
            dt = db.ExecuteQuery("SELECT Auftrag_Id FROM S_Auftrag WHERE Fertigungsstatus_Id <> 7 and Auftragsnummer Not Like 'BGK%' ORDER BY Liefertermin");

            ObservableCollection<Auftrag> Aufträge = new ObservableCollection<Auftrag>();

            foreach (DataRow dr in dt.Rows)
            {
                Aufträge.Add(new Auftrag(long.Parse(dr[0].ToString()),true));
            }

            Auftragsliste = Aufträge;
        }
        private void LoadData(string sqlString)
        {
            Datenbank db = new Datenbank();
            DataTable dt = new DataTable();
            dt = db.ExecuteQuery(sqlString);

            ObservableCollection<Auftrag> Aufträge = new ObservableCollection<Auftrag>();

            Console.WriteLine("Start: " + DateTime.Now);
            foreach (DataRow dr in dt.Rows)
            {
                Console.WriteLine("Eintrag hinzufügen start: " + DateTime.Now);
                Aufträge.Add(new Auftrag(long.Parse(dr[0].ToString()), true));
                Console.WriteLine("intrag hinzufügen ende: " + DateTime.Now);
            }
            Console.WriteLine("Ende: " + DateTime.Now);

            Auftragsliste = Aufträge;
        }
        private void getProjekt(long Id){
            Projekt_Id = Id;

            Datenbank db = new Datenbank();
            DataTable dt = new DataTable();
            dt = db.ExecuteQuery("SELECT * FROM H_Projekte WHERE Projekt_Id = " + Id.ToString());

            foreach (DataRow dr in dt.Rows)
            {
                foreach (DataColumn dc in dt.Columns)
                {
                    var cellContent = dr[dc];
                    switch (dc.ColumnName)
                    {
                        case "Projektnummer":
                            Projektnummer = (cellContent.ToString() != string.Empty) ? long.Parse(cellContent.ToString()) : 0;
                            break;
                        case "Projektbezeichnung":
                            Bezeichnung = cellContent.ToString();
                            break;
                        case "Kunde":
                            Kunde = cellContent.ToString();
                            break;
                        case "OEM":
                            OEM = cellContent.ToString();
                            break;
                        case "Vertriebsweg":
                            Vertriebsweg = cellContent.ToString();
                            break;
                        case "Kennung":
                            Kennung = cellContent.ToString();
                            break;
                        default:
                            break;
                    }
                }
            }
        }
        private void getVertriebsart(long Id)
        {
            Vertriebsart_Id = Id;

            Datenbank db = new Datenbank();
            DataTable dt = new DataTable();
            dt = db.ExecuteQuery("SELECT * FROM H_Vertriebsart WHERE Vertriebsart_Id = " + Id.ToString());

            foreach (DataRow dr in dt.Rows)
            {
                foreach (DataColumn dc in dt.Columns)
                {
                    var cellContent = dr[dc];
                    switch (dc.ColumnName)
                    {
                        case "Vertriebsart":
                            strVertriebsart = cellContent.ToString();
                            break;
                        default:
                            break;
                    }
                }
            }
        }
        // Auftrag aus Datenbank holen und Klassenparameter mit Daten füllen
        private void getAuftrag(long Id, bool Auftragsliste = false)
        {
            Console.WriteLine("Auftrag anlegen start:" + DateTime.Now.ToString("hh.mm.ss.ffffff"));
            // ToDo: Parameter mit Werten füllen
            Datenbank db = new Datenbank();
            DataTable dt = new DataTable();
            //if (Auftragsliste == true)
            //{
            //    dt = db.ExecuteQuery("SELECT Auftrag_Id, Auftragsnummer, Gerät_Id, Anzahl, Auftraggeber, Projekt_Id, Wunschtermin, Liefertermin, Fertigungsstatus_Id, Fertigungsauftrag, Vertriebsart_Id FROM S_Auftrag WHERE Auftrag_Id = " + Id.ToString());
            //}
            //else {
            //    dt = db.ExecuteQuery("SELECT * FROM S_Auftrag WHERE Auftrag_Id = " + Id.ToString());
            //}

            dt = db.ExecuteQuery("SELECT S_Auftrag.*, H_Fertigungsstatus.*, H_Benutzer.*, H_Vertriebsart.*, H_Gerät.*, H_Projekte.* " +
            "FROM ((((S_Auftrag LEFT JOIN H_Benutzer ON S_Auftrag.Ersteller_Id = H_Benutzer.Ersteller_Id) " +
            "LEFT JOIN H_Fertigungsstatus ON S_Auftrag.Fertigungsstatus_Id = H_Fertigungsstatus.Fertigungsstatus_Id) " +
            "LEFT JOIN H_Gerät ON S_Auftrag.Gerät_Id = H_Gerät.Gerät_Id) " +
            "LEFT JOIN H_Projekte ON S_Auftrag.Projekt_Id = H_Projekte.Projekt_Id) " +
            "LEFT JOIN H_Vertriebsart ON S_Auftrag.Vertriebsart_Id = H_Vertriebsart.Vertriebsart_Id " +
            "WHERE (((S_Auftrag.Auftrag_Id)="+Id+"))");

            Console.WriteLine("Auftrag zuweisen start:" + DateTime.Now.ToString("hh.mm.ss.ffffff"));

            Auftrag_Id = Id;

            foreach (DataRow dr in dt.Rows)
            {
                foreach (DataColumn dc in dt.Columns){
                    var cellContent = dr[dc];
                    switch (dc.ColumnName)
                    {
                        case "Auftragsnummer":
                            Auftragsnummer = cellContent.ToString();
                            break;
                        case "Auftraggeber":
                            Auftraggeber = cellContent.ToString();
                            break;
                        case "S_Auftrag.Projekt_Id":
                            Projekt_Id = (cellContent.ToString() != string.Empty) ? long.Parse(cellContent.ToString()) : 0;
                            break;
                        case "S_Auftrag.Gerät_Id":
                            Gerät_Id = (cellContent.ToString() != string.Empty) ? long.Parse(cellContent.ToString()) : 0;
                            break;
                        case "Anzahl":
                            Anzahl = (cellContent.ToString() != string.Empty) ? int.Parse(cellContent.ToString()) : 0;
                            break;
                        case "Wunschtermin":
                            Wunschtermin = (cellContent.ToString() != string.Empty) ? long.Parse(cellContent.ToString()) : 0;
                            break;
                        case "Liefertermin":
                            Liefertermin = (cellContent.ToString() != string.Empty) ? long.Parse(cellContent.ToString()) : 0;
                            setLieferterminBackground();
                            break;
                        case "Komponentenliefertermin":
                            if (cellContent.ToString() != string.Empty)
                            {
                                Komponentenliefertermin = DateTime.Parse(cellContent.ToString());
                            }
                            break;
                        case "S_Auftrag.Fertigungsstatus_Id":
                            Fertigungsstatus_Id = (cellContent.ToString() != string.Empty) ? long.Parse(cellContent.ToString()) : 0;
                            break;
                        case "Fertigungsauftrag":
                            Fertigungsauftrag = cellContent.ToString();
                            break;
                        case "Maßnahme":
                            Maßnahme = cellContent.ToString();
                            break;
                        case "S_Auftrag.Ersteller_Id":
                            Ersteller_Id = (cellContent.ToString() != string.Empty) ? long.Parse(cellContent.ToString()) : 0;
                            break;
                        case "Erstelldatum":
                            if (cellContent.ToString() != string.Empty)
                            {
                                Erstelldatum = DateTime.Parse(cellContent.ToString());
                            }
                            break;
                        case "Versanddatum":
                            if (cellContent.ToString() != string.Empty)
                            {
                                Versanddatum = DateTime.Parse(cellContent.ToString());
                            }
                            break;
                        case "S_Auftrag.Vertriebsart_Id":
                            Vertriebsart_Id = (cellContent.ToString() != string.Empty) ? long.Parse(cellContent.ToString()) : 0;
                            break;
                        case "Fertigungsstatus":
                            Fertigungsstatus.strFertigungsstatus = cellContent.ToString();
                            Fertigungsstatus.setBackground();
                            break;
                        case "Nachname":
                            Ersteller.Nachname = cellContent.ToString();
                            break;
                        case "Vorname":
                            Ersteller.Vorname = cellContent.ToString();
                            break;
                        case "eMail":
                            Ersteller.eMail = cellContent.ToString();
                            break;
                        case "Windowskennung":
                            Ersteller.Windowskennung = cellContent.ToString();
                            break;
                        case "Vertriebsart":
                            Vertriebsart.strVertriebsart = cellContent.ToString();
                            break;
                        case "Sachnummer":
                            Gerät.Sachnummer = cellContent.ToString();
                            break;
                        case "Bezeichnung":
                            Gerät.Bezeichnung = cellContent.ToString();
                            break;
                        case "Version":
                            Gerät.Version = cellContent.ToString();
                            break;
                        case "Bemerkung":
                            Gerät.Bemerkung = cellContent.ToString();
                            break;
                        case "Fertigungszeit":
                            Gerät.Fertigungszeit = (cellContent.ToString() != string.Empty) ? float.Parse(cellContent.ToString()) : 0;
                            break;
                        case "Fertigungszeit_Gesamt":
                            Gerät.Fertigungszeit_Gesamt = (cellContent.ToString() != string.Empty) ? float.Parse(cellContent.ToString()) : 0;
                            break;
                        case "AAWMontage":
                            Gerät.AAWMontage = (cellContent.ToString() != string.Empty) ? long.Parse(cellContent.ToString()) : 0;
                            break;
                        case "AAWPrüfung":
                            Gerät.AAWPrüfung = (cellContent.ToString() != string.Empty) ? long.Parse(cellContent.ToString()) : 0;
                            break;
                        case "AAWKomplettierung":
                            Gerät.AAWKomplettierung = (cellContent.ToString() != string.Empty) ? long.Parse(cellContent.ToString()) : 0;
                            break;
                        case "Dokumentation":
                            Gerät.Dokumentation = cellContent.ToString();
                            break;
                        case "Sonderfreigabe":
                            Gerät.Sonderfreigabe = bool.Parse(cellContent.ToString());
                            break;
                        case "Gewicht":
                            Gerät.Gewicht = (cellContent.ToString() != string.Empty) ? float.Parse(cellContent.ToString()) : 0;
                            break;
                        case "StückzahlProVerpackungseinheit":
                            Gerät.StückzahlProVerpackungseinheit = (cellContent.ToString() != string.Empty) ? int.Parse(cellContent.ToString()) : 0;
                            break;
                        case "Versand_Komplettierung":
                            Gerät.Versand_Komplettierung = bool.Parse(cellContent.ToString());
                            break;
                        case "Versand_Versand":
                            Gerät.Versand_Versand = bool.Parse(cellContent.ToString());
                            break;
                        case "ErprobtMitBGK":
                            Gerät.ErprobtMitBGK = cellContent.ToString();
                            break;
                        case "MontageProTag":
                            Gerät.MontageProTag = (cellContent.ToString() != string.Empty) ? int.Parse(cellContent.ToString()) : 0;
                            break;
                        case "Projektnummer":
                            Projekt.Projektnummer = (cellContent.ToString() != string.Empty) ? long.Parse(cellContent.ToString()) : 0;
                            break;
                        case "Projektbezeichnung":
                            Projekt.Bezeichnung = cellContent.ToString();
                            break;
                        case "Kunde":
                            Projekt.Kunde = cellContent.ToString();
                            break;
                        case "OEM":
                            Projekt.OEM = cellContent.ToString();
                            break;
                        case "Vertriebsweg":
                            Projekt.Vertriebsweg = cellContent.ToString();
                            break;
                        case "Kennung":
                            Projekt.Kennung = cellContent.ToString();
                            break;
                        default:
                            break;
                    }
                }
            }
            Console.WriteLine("Auftrag zuweisen ende:" + DateTime.Now.ToString("hh.mm.ss.ffffff"));
            Console.WriteLine("Auftrag anlegen ende:" + DateTime.Now.ToString("hh.mm.ss.ffffff"));
        }
        // Auftrag aus Datenbank holen und Klassenparameter mit Daten füllen
        public void getGerät(long Id)
        {
            this.Gerät_Id = Id;
            // ToDo: Parameter mit Werten füllen
            Datenbank db = new Datenbank();
            DataTable dt = new DataTable();
            dt = db.ExecuteQuery("SELECT * FROM H_Gerät WHERE Gerät_Id = " + Id.ToString());

            foreach (DataRow dr in dt.Rows)
            {
                foreach (DataColumn dc in dt.Columns){
                    var cellContent = dr[dc];
                    switch (dc.ColumnName)
                    {
                        case "Sachnummer":
                            Sachnummer = cellContent.ToString();
                            break;
                        case "Bezeichnung":
                            Bezeichnung = cellContent.ToString();
                            break;
                        case "Version":
                            Version = cellContent.ToString();
                            break;
                        case "Fertigungszeit":
                            Fertigungszeit = (cellContent.ToString() != string.Empty) ? float.Parse(cellContent.ToString()) : 0;
                            break;
                        case "Fertigungszeit_Gesamt":
                            Fertigungszeit_Gesamt = (cellContent.ToString() != string.Empty) ? float.Parse(cellContent.ToString()) : 0;
                            break;
                        case "AAWMontage":
                            AAWMontage = (cellContent.ToString() != string.Empty) ? long.Parse(cellContent.ToString()) : 0;
                            break;
                        case "AAWPrüfung":
                            AAWPrüfung = (cellContent.ToString() != string.Empty) ? long.Parse(cellContent.ToString()) : 0;
                            break;
                        case "AAWKomplettierung":
                            AAWKomplettierung = (cellContent.ToString() != string.Empty) ? long.Parse(cellContent.ToString()) : 0;
                            break;
                        case "Dokumentation":
                            Dokumentation = cellContent.ToString();
                            break;
                        case "Sonderfreigabe":
                            Sonderfreigabe = (cellContent.ToString() != string.Empty) ? bool.Parse(cellContent.ToString()) : false;
                            break;
                        case "Gewicht":
                            Gewicht = (cellContent.ToString() != string.Empty) ? float.Parse(cellContent.ToString()) : 0;
                            break;
                        case "StückzahlProVerpackungseinheit":
                            StückzahlProVerpackungseinheit = (cellContent.ToString() != string.Empty) ? int.Parse(cellContent.ToString()) : 0;
                            break;
                        case "Versand_Komplettierung":
                            Versand_Komplettierung = (cellContent.ToString() != string.Empty) ? bool.Parse(cellContent.ToString()) : false;
                            break;
                        case "Versand_Versand":
                            Versand_Versand = (cellContent.ToString() != string.Empty) ? bool.Parse(cellContent.ToString()) : false;
                            break;
                        case "ErprobtMitBGK":
                            ErprobtMitBGK = cellContent.ToString();
                            break;
                        case "MontageProTag":
                            MontageProTag = (cellContent.ToString() != string.Empty) ? int.Parse(cellContent.ToString()) : 0;
                            break;
                        default:
                            break;
                    }
                }
            }
        }