/// <summary> /// Läd die Spiele aus einem XmlDokument im angegebenen Pfad in die Spieleliste. /// </summary> /// <returns>Gibt true zurück wenn das laden der XmlAttribute in die Instanzen der Spiele erfolgreich war. /// Gibt false zurück wenn das laden der Attribute fehlgeschlagen ist.</returns> public bool XmlLaden(string XmlPath) { int i = 0; //Falls das Dokument nicht existiert wird es erstellt und ein XmlKnoten angefügt. if (!File.Exists(XmlPath)) { XmlSpeichern(XmlPath); } XmlDocument doc = new XmlDocument(); //Löst eine XmlException aus wenn die datei vorhanden ist, es aber keine Knoten gibt. try { doc.Load(XmlPath); } catch (XmlException) { XmlSpeichern(XmlPath); doc.Load(XmlPath); } //Root Knoten in ein XmlElement laden XmlElement RootNode = doc.DocumentElement; //Für jedes XML Element aus dem Root Knoten die Schleife ausführen try { SpieleListe.Clear(); foreach (XmlNode Spiel in RootNode.ChildNodes) { Spiel ISpiel = new Spiel(); ISpiel.Titel = Spiel.Name; ISpiel.Datum = Spiel.Attributes["Datum"].InnerText; ISpiel.LetztesSpielDatum = Spiel.Attributes["LetztesSpielDatum"].InnerText; ISpiel.InstallationsPfad = Spiel.Attributes["InstallationsPfad"].InnerText; ISpiel.Kategorie = Spiel.Attributes["Kategorie"].InnerText; ISpiel.Publisher = Spiel.Attributes["Publisher"].InnerText; ISpiel.USK = Convert.ToInt32(Spiel.Attributes["USK"].InnerText); SpieleListe.Add(ISpiel); } SpieleListe.Sort((x, y) => x.Titel.CompareTo(y.Titel)); return(true); } catch (Exception e) { MessageBox.Show("Exception" + e.Message); return(false); } }
/// <summary> /// Fügt ein Spiel mit dén angegebenen Parametern in die Spieleliste hinzu. /// </summary> /// <param name="Titel"></param> /// <param name="Datum"></param> /// <param name="LetztesSpielDatum"></param> /// <param name="Installationspfad"></param> /// <param name="Kategorie"></param> /// <param name="Publisher"></param> /// <param name="USK"></param> public void SpielHinzufügen(string Titel, string Datum, string LetztesSpielDatum, string Installationspfad, string Kategorie, string Publisher, int USK) { //Es wird überprüft ob eines der Attribute null ist if (Titel == null || Datum == null || LetztesSpielDatum == null || Installationspfad == null || Kategorie == null || Publisher == null || USK != 0 && USK != 6 && USK != 12 && USK != 16 && USK != 18) { throw new NullReferenceException("Eines der übergebenen Parameter an Libary.SpielHinzufügen() hat eine Exception vom Typ NullReferenceException ausgelöst."); } //Es wird überprüft ob der Installationspfad Existiert if (!File.Exists(Installationspfad)) { throw new FileNotFoundException(); } Spiel ISpiel = new Spiel(); ISpiel.Titel = Titel; ISpiel.Datum = Datum; ISpiel.LetztesSpielDatum = LetztesSpielDatum; ISpiel.InstallationsPfad = Installationspfad; ISpiel.Kategorie = Kategorie; ISpiel.Publisher = Publisher; ISpiel.USK = USK; SpieleListe.Add(ISpiel); }