1: /// <summary>
2: /// Data repository
3: /// </summary>
4: class GameData
5: { 6: private const string dataStoreFile = @"c:\_TFSWorkspace\WIIGames\data\Game.xml";
7: public IList<Game> gameList = new List<Game>();
8:
9: public GameData()
10: { 11:
12: }
13: public void Add(Game gameToAdd)
14: { 15: if (!gameList.Contains(gameToAdd))
16: { 17: gameList.Add(gameToAdd);
18: }
19: }
20: public void Remove(Game gameToRemove)
21: { 22:
23: }
24: /// <summary>
25: /// loads internal data structure from disk
26: /// </summary>
27: public void Load()
28: { 29: XDocument doc = XDocument.Load(dataStoreFile);
30: gameList = (from games in doc.Descendants("game") 31: select new Game()
32: { 33: Bestandsnaam = games.Element("bestandsnaam").Value, 34: Regio = games.Element("regio").Value, 35: Release = DateTime.ParseExact(games.Element("releasedatum").Value,"dd-MM-yyyy",null), 36: ReleaseNaam = games.Element("releasenaam").Value, 37: HansNummer = Int32.Parse(games.Element("hansnummer").Value), 38: Naam = games.Element("naam").Value, 39: Nummer = Int32.Parse(games.Attribute("nummer").Value) 40:
41: }).ToList<Game>();
42: }
43: /// <summary>
44: /// Saves internal data structure to disk
45: /// </summary>
46: public void Persist()
47: { 48: XDocument doc = new XDocument(
49: new XDeclaration("1.0", "utf-8", "yes"), 50: new XElement("games", 51: from game in gameList
52: select new XElement("game", 53: new XAttribute("nummer", game.Nummer), 54: new XElement("naam",game.Naam), 55: new XElement("hansnummer",game.HansNummer), 56: new XElement("releasenaam",game.ReleaseNaam), 57: new XElement("releasedatum",game.Release.ToString("dd-MM-yyyy")), 58: new XElement("regio",game.Regio), 59: new XElement("bestandsnaam",game.Bestandsnaam) 60: )
61: )
62: );
63: doc.Save(dataStoreFile);
64: }
65: }