private static bool LiesKonfig(string path)
        {
            List <Tuple <Verarbeitungsschritt, int> > ListeFähigkeitenMitDauer;

            Console.WriteLine("Fertigungsabteilung: Einlesen gestartet!");
            var lines = File.ReadLines(path);

            foreach (var line in lines)
            {
                if (firstLine)
                {
                    firstLine = false; continue;
                }                                               // einfach nur die Kopfzeile überspringen

                var strings = line.Split(';');
                var name    = strings[0];
                ListeFähigkeitenMitDauer = new List <Tuple <Verarbeitungsschritt, int> >();
                for (int i = 1; i < strings.Length; i++)
                {
                    var s = strings[i].Split(':');
                    ListeFähigkeitenMitDauer.Add(
                        new Tuple <Verarbeitungsschritt, int>(
                            (Verarbeitungsschritt)Enum.Parse(typeof(Verarbeitungsschritt), s[0]),
                            Int32.Parse(s.Length > 1 ? s[1] : "0")
                            )
                        );
                }

                if (ListeFähigkeitenMitDauer.Any(x => x.Item1 == Verarbeitungsschritt.INITIALISIEREN))
                {
                    // erstelle Eingangslager
                    EingangsLager lager = new EingangsLager(name, ListeFähigkeitenMitDauer);
                    lager.InitialisiereTeile("..//..//..//Teile.csv");
                    produktionseinrichtungen.Add(lager);
                    continue;
                }

                if (ListeFähigkeitenMitDauer.Any(x => x.Item1 == Verarbeitungsschritt.EINLAGERN))
                {
                    // erstelle Ausgangslager
                    AusgangsLager lager = new AusgangsLager(name, ListeFähigkeitenMitDauer);
                    produktionseinrichtungen.Add(lager);
                    continue;
                }

                //TODO: abfrage ist unlogisch (geht aber)
                if (ListeFähigkeitenMitDauer.Any(x => (x.Item1 != Verarbeitungsschritt.EINLAGERN) && (x.Item1 != Verarbeitungsschritt.INITIALISIEREN)))
                {
                    //erstelle Fertigungsinsel
                    Fertigungsinsel fertigungsinsel = new Fertigungsinsel(name, ListeFähigkeitenMitDauer);
                    produktionseinrichtungen.Add(fertigungsinsel);
                    continue;
                }
            }
            return(true);
        }
        public void Start()
        {
            // TODO: schaue ob alle Verarbeitungsschritte in FIs behandelt werden können

            DateTime nächsterSchritt = DateTime.Now;

            while (!IstFertig())
            {
                if (DateTime.Now >= nächsterSchritt.AddSeconds(1 / 4.0))
                {
                    nächsterSchritt = DateTime.Now;

                    Produktionseinrichtung prodEinr = GetAbholbereiteProduktionseinrichtung();
                    // wenn es eine abholbereite produktionseinrichtung gibt
                    if (prodEinr != null)
                    {
                        // hole teil
                        if (prodEinr is EingangsLager)
                        {
                            _AktuellesTeil = ((EingangsLager)prodEinr).TeilAusgeben();
                        }
                        else if (prodEinr is Fertigungsinsel)
                        {
                            _AktuellesTeil = ((Fertigungsinsel)prodEinr).TeilZurueckgeben();
                            //    _aktue
                        }
                        Console.WriteLine(_AktuellesTeil.GetSeriennummer() + " < " + prodEinr.GetName());

                        if (_AktuellesTeil.SelbstTestTeil())
                        {
                            Console.WriteLine(_AktuellesTeil.GetSeriennummer() + " > LagerAus");
                            FindeAusgangsLager().TeilFuerDenVersandEmpfangen(_AktuellesTeil);
                        }
                        else
                        {
                            Fertigungsinsel insel = GetSchnellsteFertigungsinsel();
                            // wenn es keine FI gibt die das teil verarbeiten kann
                            if (insel == null)
                            {
                                Console.WriteLine(_AktuellesTeil.GetSeriennummer() + " > LagerEin");
                                findeEingangsLager().TeilZwischenlagern(_AktuellesTeil);
                            }
                            else
                            {
                                Console.WriteLine(_AktuellesTeil.GetSeriennummer() + " > " + insel.GetName());
                                insel.TeilEntgegennehmen(_AktuellesTeil);
                            }
                        }
                    }
                }
            }
            Console.WriteLine("Robbie ist fertig. " + FindeAusgangsLager().GetBestand().Count + " Teile im Ausgangslager");
        }