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 } } }
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; }