public List<Game> generateGameList() { List<Game> generatedList = new List<Game>(); if(!File.Exists(Settings.Default.xmlPath)){ return generatedList; } // parse the XML file XmlDocument parser = new XmlDocument(); parser.Load(Settings.Default.xmlPath); foreach (XmlNode gameNode in parser.GetElementsByTagName("game")) { Game g = new Game(); foreach (XmlNode game_element in gameNode.ChildNodes) { List<string> exes = new List<string>(); if (game_element.Name == "title") { g.title = game_element.InnerText; } if (game_element.Name == "size") { g.size = game_element.InnerText; } if (game_element.Name == "players") { g.players = game_element.InnerText; } if (game_element.Name == "message") { g.message = game_element.InnerText.Trim(); } if (game_element.Name == "exes") { foreach (XmlNode exe in game_element.ChildNodes) { Exe newExe = new Exe(); foreach (XmlNode exe_element in exe.ChildNodes) { if (exe_element.Name == "file") { newExe.file = exe_element.InnerText; } if (exe_element.Name == "icon") { newExe.icon = exe_element.InnerText; } if (exe_element.Name == "name") { newExe.title = exe_element.InnerText; } } g.AddExe(newExe); } } } // new list? Add! generatedList.Add(g); } return generatedList; }
public void AddExe(Exe pvExe) { _executables.Add(pvExe); string iconFile = Settings.Default.Directory + "icons\\" + pvExe.icon; // check if we need to download the icon if (File.Exists(iconFile)) { return; } try { _downloader.DownloadFile(iconURL(pvExe.icon), iconFile); } catch { return; //todo } }