private void outputRepoAktualisieren()
        {
            OutputRepo.auftraege.Clear();

            // TODO
            int aktuellePeriode = 6;
            int kaufteilnummer;

            for (int i = 0; i < kaufteilnummern.Count; ++i)
            {
                if ((!String.IsNullOrEmpty(bestellmengen[i].Text)) && (!String.IsNullOrEmpty(bestellarten[i].Text)))
                {
                    // vorhandene Bestellung hinzufügen
                    kaufteilnummer = int.Parse(kaufteilnummern[i].Content.ToString());

                    Auftrag a = new Auftrag();
                    a.Artikel = ArtikelRepo.findArtikel(kaufteilnummer);
                    a.Menge = int.Parse(bestellmengen[i].Text);
                    a.Modus = (bestellarten[i].Text == "E") ? 4 : 5;
                    a.Periode = aktuellePeriode;

                    OutputRepo.auftraege.Add(a);
                }
                else
                {
                    // es wird keine Bestellung für diese Zeile übernommen
                }
            }
        }
Beispiel #2
0
        public void Button_Import(object sender, RoutedEventArgs e)
        {
            string filename = PfadBox.Text;
            OutputRepo.periode = int.Parse(Periode.Text);

            if (filename == null || filename == "")
            {
                var result = System.Windows.Forms.MessageBox.Show("Bitte Datei auswählen!", "XML Import", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
                if (result == System.Windows.Forms.DialogResult.OK)
                {
                    return;
                }
            }

            XmlDocument doc = new XmlDocument();
            doc.Load(filename);

            XmlNode root = doc.FirstChild.NextSibling;

            if (root.HasChildNodes)
            {
                for (int i = 0; i < root.ChildNodes.Count; i++)
                {
                    switch (root.ChildNodes[i].Name)
                    {
                        case "warehousestock":
                            foreach (XmlNode node in root.ChildNodes[i].ChildNodes)
                            {
                                if (node.Name.Equals("article"))
                                {
                                    int menge = 0;
                                    Artikel xmlArtikel = null;
                                    foreach (XmlAttribute attribute in node.Attributes)
                                    {
                                        if (attribute.Name.Equals("id"))
                                        {
                                            xmlArtikel = ArtikelRepo.findArtikel(int.Parse(attribute.InnerText));
                                        }
                                        else if (attribute.Name.Equals("amount"))
                                        {
                                            menge = int.Parse(attribute.InnerText);
                                        }
                                    }
                                    xmlArtikel.Bestand = menge;
                                }
                            }
                            break;
                        case "futureinwardstockmovement":
                            foreach (XmlNode node in root.ChildNodes[i].ChildNodes)
                            {
                                Auftrag auftrag = new Auftrag();
                                foreach (XmlAttribute attribute in node.Attributes)
                                {
                                    switch(attribute.Name)
                                    {
                                        case "amount":
                                            auftrag.Menge = int.Parse(attribute.InnerText);
                                            break;
                                        case "article":
                                            auftrag.Artikel = ArtikelRepo.findArtikel(int.Parse(attribute.InnerText));
                                            break;
                                        case "mode":
                                            auftrag.Modus = int.Parse(attribute.InnerText);
                                            break;
                                        case "orderperiod":
                                            auftrag.Periode = int.Parse(attribute.InnerText);
                                            break;
                                    }
                                }
                                InputRepo.offeneAuftraege.Add(auftrag);
                            }
                            break;
                        case "inwardstockmovement":
                            break;
                        case "idletimecosts":
                            break;
                        case "waitinglistworkstations":
                            foreach (XmlNode node in root.ChildNodes[i].ChildNodes)
                            {
                                List<WarteschlangeArbeitsplatz> warteschlangen = new List<WarteschlangeArbeitsplatz>();
                                foreach(XmlNode childNode in node.ChildNodes)
                                {
                                    WarteschlangeArbeitsplatz warteschlange = new WarteschlangeArbeitsplatz();
                                    foreach(XmlAttribute childAttribute in childNode.Attributes)
                                    {
                                        switch(childAttribute.Name)
                                        {
                                            case "amount":
                                                warteschlange.Menge = int.Parse(childAttribute.InnerText);
                                                break;
                                            case "timeneed":
                                                warteschlange.Zeit = int.Parse(childAttribute.InnerText);
                                                break;
                                            case "item":
                                                warteschlange.Artikel = ArtikelRepo.findArtikel(int.Parse(childAttribute.InnerText));
                                                break;
                                        }
                                    }
                                    warteschlangen.Add(warteschlange);
                                }

                                if (node.ChildNodes.Count != 0)
                                {
                                    Arbeitsplatz platz = null;
                                    foreach (XmlAttribute attribute in node.Attributes)
                                    {
                                        switch (attribute.Name)
                                        {
                                            case "id":
                                                platz = ArbeitsplatzRepo.findArbeitsplatz(int.Parse(attribute.InnerText));
                                                break;
                                        }
                                    }
                                    foreach (WarteschlangeArbeitsplatz schlange in warteschlangen)
                                    {
                                        schlange.Arbeitsplatz = platz;
                                        InputRepo.warteschlangenArbeitsplatz.Add(schlange);
                                    }
                                }
                            }
                            break;
                        case "waitingliststock":
                            break;
                        case "ordersinwork":
                            foreach (XmlNode node in root.ChildNodes[i].ChildNodes)
                            {
                                WarteschlangeArbeitsplatz inBearbeitung = new WarteschlangeArbeitsplatz();
                                foreach(XmlAttribute attribute in node.Attributes)
                                {
                                    switch(attribute.Name)
                                    {
                                        case "amount":
                                            inBearbeitung.Menge = int.Parse(attribute.InnerText);
                                            break;
                                        case "id":
                                            inBearbeitung.Arbeitsplatz = ArbeitsplatzRepo.findArbeitsplatz(int.Parse(attribute.InnerText));
                                            break;
                                        case "timeneed":
                                            inBearbeitung.Zeit = int.Parse(attribute.InnerText);
                                            break;
                                        case "item":
                                            inBearbeitung.Artikel = ArtikelRepo.findArtikel(int.Parse(attribute.InnerText));
                                            break;
                                    }
                                }
                                InputRepo.warteschlangenBearbeitung.Add(inBearbeitung);
                            }
                            break;
                        case "completedorders":
                            break;
                        case "cycletimes":
                            break;
                        case "result":
                            break;
                    }
                }
            }

            Button b = sender as Button;
            b.Background = Brushes.Green;
        }