private void btnLoadFromHyperSpin_Click(object sender, EventArgs e) { OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog1.Filter = "xml|*.xml"; openFileDialog1.FilterIndex = 1; openFileDialog1.RestoreDirectory = true; if (openFileDialog1.ShowDialog() == DialogResult.OK) { XDocument xmlDoc = XDocument.Load(openFileDialog1.FileName); infoBox.AppendText("LOADED XML FILE \n " + openFileDialog1.FileName + "\n"); foreach (XElement game_node in xmlDoc.Descendants("game")) { GameDataItem newItem = new GameDataItem(platform_id, game_node.Attribute("name").Value); if (game_node.Element("crc") != null) { newItem.crc = game_node.Element("crc").Value; } else { newItem.crc = ""; } newItem.name = game_node.Element("description").Value; newItem.developer = game_node.Element("manufacturer").Value; newItem.rating = game_node.Element("rating").Value; if (!Int64.TryParse(game_node.Element("year").Value, out newItem.release_year)) { newItem.release_year = 0; } string genre = game_node.Element("genre").Value; newItem.genre_id = db.getGenreID(genre); db.upsertGamesDataset(newItem); } } }
private void btnLoadFromHyperSpin_Click(object sender, EventArgs e) { OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog1.Filter = "xml|*.xml"; openFileDialog1.FilterIndex = 1; openFileDialog1.RestoreDirectory = true; if (openFileDialog1.ShowDialog() == DialogResult.OK) { XDocument xmlDoc = XDocument.Load(openFileDialog1.FileName); infoBox.AppendText("LOADED XML FILE \n " + openFileDialog1.FileName + "\n"); foreach (XElement game_node in xmlDoc.Descendants("game")) { GameDataItem newItem = new GameDataItem(platform_id, game_node.Attribute("name").Value); if (game_node.Element("crc") != null) newItem.crc = game_node.Element("crc").Value; else newItem.crc = ""; newItem.name = game_node.Element("description").Value; newItem.developer = game_node.Element("manufacturer").Value; newItem.rating = game_node.Element("rating").Value; if (!Int64.TryParse(game_node.Element("year").Value, out newItem.release_year)) newItem.release_year = 0; string genre = game_node.Element("genre").Value; newItem.genre_id = db.getGenreID(genre); db.upsertGamesDataset(newItem); } } }
//Game Tab // get meta data from theGamesDB.net private void btnGameOnGameDB_Click(object sender, EventArgs e) { string platform_name = listboxPlatforms.Text; int selectedrows = dataGridGames.FirstDisplayedScrollingRowIndex; foreach (DataGridViewRow r in dataGridGames.SelectedRows) { string game_fileName = r.Cells["file_name"].Value as string; string game_name = r.Cells["name"].Value as string; long gamedb_id = db.getGameDB_ID(platform_id, game_fileName); if (gamedb_id == 0) { string searchString = Regex.Replace(game_name, "(\\[.*\\])|(\\(.*\\))", ""); /// Remove all the text between square and round brackets GameDB_Search gameDB_Search = new GameDB_Search(searchString, platform_name, game_fileName); if (gameDB_Search.ShowDialog() == DialogResult.OK) { gamedb_id = Convert.ToInt64( gameDB_Search.ReturnedID ); } else { continue; } // Write new gamedb_id to table // var command = new SQLiteCommand("update games set gamedb_id = @gamedb_id where platform_id = @platform_id and file_name = @file_name"); // command.Parameters.AddWithValue("@gamedb_id", gamedb_id); // command.Parameters.AddWithValue("@file_name", game_fileName); // command.Parameters.AddWithValue("@platform_id", platform_id); // db.sqlExecute(command); } // get xml for game from gamesdb.net string url = string.Format("http://thegamesdb.net/api/GetGame.php?id={0}", gamedb_id); string xml = new WebClient().DownloadString(url); StringReader stringReader = new StringReader(xml); XDocument xmlDoc = XDocument.Load(stringReader); XElement game_node = xmlDoc.Descendants("Game").First(); GameDataItem updateItem = new GameDataItem(platform_id, game_fileName); updateItem.gamedb_id = Convert.ToInt64(gamedb_id); if (game_node.Element("Overview") != null) updateItem.description = game_node.Element("Overview").Value; if (game_node.Element("ReleaseDate") != null) { string strReleaseDate = game_node.Element("ReleaseDate").Value; DateTime releaseDateDate; if (DateTime.TryParse(strReleaseDate, out releaseDateDate)) { updateItem.release_year = releaseDateDate.Year; } } if (game_node.Element("ESRB") != null) updateItem.rating = game_node.Element("ESRB").Value; if (game_node.Element("Players") != null) updateItem.players = game_node.Element("Players").Value; if (game_node.Element("Co-op") != null) { if (game_node.Element("Co-op").Value == "Yes") updateItem.co_op = 1; else updateItem.co_op = 0; } else updateItem.co_op = 0; if (game_node.Element("Publisher") != null) updateItem.publisher = game_node.Element("Publisher").Value; if (game_node.Element("Developer") != null) updateItem.developer = game_node.Element("Developer").Value; if (game_node.Element("Rating") != null) updateItem.gamedb_stars = Convert.ToDouble( game_node.Element("Rating").Value ); db.upsertGamesDataset(updateItem); infoBox.AppendText(game_fileName + " checked on http://thegamesdb.net/ ID number " + gamedb_id + "\n", Color.WhiteSmoke); } dataGridGames.FirstDisplayedScrollingRowIndex = selectedrows; }
public void upsertGamesDataset(GameDataItem updateData) { DataRow[] gameRow = dsGames.Tables[0].Select(String.Format(@"file_name = '{0}'", updateData.file_name.Replace("'", "''"))); //Get the current row that we are going to edit. if (gameRow.Count() > 0) // this row already exists in the dataset, update it to our new values { if (updateData.gamedb_id != -1) gameRow[0]["gamedb_id"] = updateData.gamedb_id; if (updateData.genre_id >= 0) gameRow[0]["genre_id"] = updateData.genre_id; if (updateData.crc != "NULL") gameRow[0]["crc"] = updateData.genre_id; if (updateData.game_load_string != "NULL") gameRow[0]["game_load_string"] = updateData.game_load_string; if (updateData.name != "NULL") gameRow[0]["name"] = updateData.name; if (updateData.description != "NULL") gameRow[0]["description"] = updateData.description; if (updateData.region_id != "NULL") gameRow[0]["region_id"] = updateData.region_id; if (updateData.release_year >= 0) gameRow[0]["release_year"] = updateData.release_year; if (updateData.rating != "NULL") gameRow[0]["rating"] = updateData.rating; if (updateData.players != "NULL") { if (updateData.players == "4+") gameRow[0]["players"] = 4; else gameRow[0]["players"] = updateData.players; } if (updateData.co_op == 0 || updateData.co_op == 1) gameRow[0]["co_op"] = updateData.co_op; if (updateData.publisher != "NULL") gameRow[0]["publisher"] = updateData.publisher; if (updateData.publisher_id >= 0) gameRow[0]["publisher_id"] = updateData.publisher_id; if (updateData.developer != "NULL") gameRow[0]["developer"] = updateData.developer; if (updateData.developer_id >= 0) gameRow[0]["developer_id"] = updateData.developer_id; if (updateData.users_stars >= 0) gameRow[0]["users_stars"] = updateData.users_stars; if (updateData.gamedb_stars >= 0) gameRow[0]["gamedb_stars"] = updateData.gamedb_stars; if (updateData.control_type != "NULL") gameRow[0]["control_type"] = updateData.control_type; if (updateData.active == 0 || updateData.active == 1) gameRow[0]["active"] = updateData.active; if (updateData.favourite == 0 || updateData.favourite == 1) gameRow[0]["favourite"] = updateData.favourite; if (updateData.clone_of != "NULL") gameRow[0]["clone_of"] = updateData.clone_of; } else // this is a whole new row, add it to the ds { DataRow newRow = dsGames.Tables[0].NewRow(); newRow["file_name"] = updateData.file_name; newRow["platform_id"] = updateData.platform_id; if (updateData.gamedb_id != -1) newRow["gamedb_id"] = updateData.gamedb_id; else newRow["gamedb_id"] = 0; if (updateData.genre_id >= 0) newRow["genre_id"] = updateData.genre_id; else newRow["genre_id"] = 0; if (updateData.crc != "NULL") newRow["crc"] = updateData.crc; else newRow["crc"] = "NONE"; if (updateData.game_load_string != "NULL") newRow["game_load_string"] = updateData.game_load_string; else newRow["game_load_string"] = ""; if (updateData.name != "NULL") newRow["name"] = updateData.name; else newRow["name"] = "No Name Entered"; if (updateData.description != "NULL") newRow["description"] = updateData.description; else newRow["description"] = ""; if (updateData.region_id != "NULL") newRow["region_id"] = updateData.region_id; else newRow["region_id"] = "NONE"; if (updateData.release_year >= 0) newRow["release_year"] = updateData.release_year; else newRow["release_year"] = 0; if (updateData.rating != "NULL") newRow["rating"] = updateData.rating; else newRow["rating"] = ""; if (updateData.players != "NULL") newRow["players"] = updateData.players; else newRow["players"] = 0; if (updateData.publisher != "NULL") newRow["publisher"] = updateData.publisher; else newRow["publisher"] = ""; if (updateData.publisher_id >= 0) newRow["publisher_id"] = updateData.publisher_id; else newRow["publisher_id"] = 0; if (updateData.developer != "NULL") newRow["developer"] = updateData.developer; else newRow["developer"] = ""; if (updateData.developer_id >= 0) newRow["developer_id"] = updateData.developer_id; else newRow["developer_id"] = 0; if (updateData.users_stars >= 0) newRow["users_stars"] = updateData.users_stars; else newRow["users_stars"] = 0; if (updateData.gamedb_stars >= 0) newRow["gamedb_stars"] = updateData.gamedb_stars; else newRow["gamedb_stars"] = 0; if (updateData.control_type != "NULL") newRow["control_type"] = updateData.control_type; else newRow["control_type"] = ""; if (updateData.active == 0 || updateData.active == 1) newRow["active"] = updateData.active; else newRow["active"] = 0; if (updateData.favourite == 0 || updateData.favourite == 1) newRow["favourite"] = updateData.favourite; else newRow["favourite"] = 0; if (updateData.co_op == 0 || updateData.co_op == 1) newRow["co_op"] = updateData.co_op; else newRow["co_op"] = 0; if (updateData.clone_of != "NULL") newRow["clone_of"] = updateData.clone_of; else newRow["clone_of"] = "NONE"; dsGames.Tables[0].Rows.Add(newRow); } }
public void upsertGamesDataset(GameDataItem updateData) { DataRow[] gameRow = dsGames.Tables[0].Select(String.Format(@"file_name = '{0}'", updateData.file_name.Replace("'", "''"))); //Get the current row that we are going to edit. if (gameRow.Count() > 0) // this row already exists in the dataset, update it to our new values { if (updateData.gamedb_id != -1) { gameRow[0]["gamedb_id"] = updateData.gamedb_id; } if (updateData.genre_id >= 0) { gameRow[0]["genre_id"] = updateData.genre_id; } if (updateData.crc != "NULL") { gameRow[0]["crc"] = updateData.genre_id; } if (updateData.game_load_string != "NULL") { gameRow[0]["game_load_string"] = updateData.game_load_string; } if (updateData.name != "NULL") { gameRow[0]["name"] = updateData.name; } if (updateData.description != "NULL") { gameRow[0]["description"] = updateData.description; } if (updateData.region_id != "NULL") { gameRow[0]["region_id"] = updateData.region_id; } if (updateData.release_year >= 0) { gameRow[0]["release_year"] = updateData.release_year; } if (updateData.rating != "NULL") { gameRow[0]["rating"] = updateData.rating; } if (updateData.players != "NULL") { if (updateData.players == "4+") { gameRow[0]["players"] = 4; } else { gameRow[0]["players"] = updateData.players; } } if (updateData.co_op == 0 || updateData.co_op == 1) { gameRow[0]["co_op"] = updateData.co_op; } if (updateData.publisher != "NULL") { gameRow[0]["publisher"] = updateData.publisher; } if (updateData.publisher_id >= 0) { gameRow[0]["publisher_id"] = updateData.publisher_id; } if (updateData.developer != "NULL") { gameRow[0]["developer"] = updateData.developer; } if (updateData.developer_id >= 0) { gameRow[0]["developer_id"] = updateData.developer_id; } if (updateData.users_stars >= 0) { gameRow[0]["users_stars"] = updateData.users_stars; } if (updateData.gamedb_stars >= 0) { gameRow[0]["gamedb_stars"] = updateData.gamedb_stars; } if (updateData.control_type != "NULL") { gameRow[0]["control_type"] = updateData.control_type; } if (updateData.active == 0 || updateData.active == 1) { gameRow[0]["active"] = updateData.active; } if (updateData.favourite == 0 || updateData.favourite == 1) { gameRow[0]["favourite"] = updateData.favourite; } if (updateData.clone_of != "NULL") { gameRow[0]["clone_of"] = updateData.clone_of; } } else // this is a whole new row, add it to the ds { DataRow newRow = dsGames.Tables[0].NewRow(); newRow["file_name"] = updateData.file_name; newRow["platform_id"] = updateData.platform_id; if (updateData.gamedb_id != -1) { newRow["gamedb_id"] = updateData.gamedb_id; } else { newRow["gamedb_id"] = 0; } if (updateData.genre_id >= 0) { newRow["genre_id"] = updateData.genre_id; } else { newRow["genre_id"] = 0; } if (updateData.crc != "NULL") { newRow["crc"] = updateData.crc; } else { newRow["crc"] = "NONE"; } if (updateData.game_load_string != "NULL") { newRow["game_load_string"] = updateData.game_load_string; } else { newRow["game_load_string"] = ""; } if (updateData.name != "NULL") { newRow["name"] = updateData.name; } else { newRow["name"] = "No Name Entered"; } if (updateData.description != "NULL") { newRow["description"] = updateData.description; } else { newRow["description"] = ""; } if (updateData.region_id != "NULL") { newRow["region_id"] = updateData.region_id; } else { newRow["region_id"] = "NONE"; } if (updateData.release_year >= 0) { newRow["release_year"] = updateData.release_year; } else { newRow["release_year"] = 0; } if (updateData.rating != "NULL") { newRow["rating"] = updateData.rating; } else { newRow["rating"] = ""; } if (updateData.players != "NULL") { newRow["players"] = updateData.players; } else { newRow["players"] = 0; } if (updateData.publisher != "NULL") { newRow["publisher"] = updateData.publisher; } else { newRow["publisher"] = ""; } if (updateData.publisher_id >= 0) { newRow["publisher_id"] = updateData.publisher_id; } else { newRow["publisher_id"] = 0; } if (updateData.developer != "NULL") { newRow["developer"] = updateData.developer; } else { newRow["developer"] = ""; } if (updateData.developer_id >= 0) { newRow["developer_id"] = updateData.developer_id; } else { newRow["developer_id"] = 0; } if (updateData.users_stars >= 0) { newRow["users_stars"] = updateData.users_stars; } else { newRow["users_stars"] = 0; } if (updateData.gamedb_stars >= 0) { newRow["gamedb_stars"] = updateData.gamedb_stars; } else { newRow["gamedb_stars"] = 0; } if (updateData.control_type != "NULL") { newRow["control_type"] = updateData.control_type; } else { newRow["control_type"] = ""; } if (updateData.active == 0 || updateData.active == 1) { newRow["active"] = updateData.active; } else { newRow["active"] = 0; } if (updateData.favourite == 0 || updateData.favourite == 1) { newRow["favourite"] = updateData.favourite; } else { newRow["favourite"] = 0; } if (updateData.co_op == 0 || updateData.co_op == 1) { newRow["co_op"] = updateData.co_op; } else { newRow["co_op"] = 0; } if (updateData.clone_of != "NULL") { newRow["clone_of"] = updateData.clone_of; } else { newRow["clone_of"] = "NONE"; } dsGames.Tables[0].Rows.Add(newRow); } }
//Game Tab // get meta data from theGamesDB.net private void btnGameOnGameDB_Click(object sender, EventArgs e) { string platform_name = listboxPlatforms.Text; int selectedrows = dataGridGames.FirstDisplayedScrollingRowIndex; foreach (DataGridViewRow r in dataGridGames.SelectedRows) { string game_fileName = r.Cells["file_name"].Value as string; string game_name = r.Cells["name"].Value as string; long gamedb_id = db.getGameDB_ID(platform_id, game_fileName); if (gamedb_id == 0) { string searchString = Regex.Replace(game_name, "(\\[.*\\])|(\\(.*\\))", ""); /// Remove all the text between square and round brackets GameDB_Search gameDB_Search = new GameDB_Search(searchString, platform_name, game_fileName); if (gameDB_Search.ShowDialog() == DialogResult.OK) { gamedb_id = Convert.ToInt64(gameDB_Search.ReturnedID); } else { continue; } // Write new gamedb_id to table // var command = new SQLiteCommand("update games set gamedb_id = @gamedb_id where platform_id = @platform_id and file_name = @file_name"); // command.Parameters.AddWithValue("@gamedb_id", gamedb_id); // command.Parameters.AddWithValue("@file_name", game_fileName); // command.Parameters.AddWithValue("@platform_id", platform_id); // db.sqlExecute(command); } // get xml for game from gamesdb.net string url = string.Format("http://thegamesdb.net/api/GetGame.php?id={0}", gamedb_id); string xml = new WebClient().DownloadString(url); StringReader stringReader = new StringReader(xml); XDocument xmlDoc = XDocument.Load(stringReader); XElement game_node = xmlDoc.Descendants("Game").First(); GameDataItem updateItem = new GameDataItem(platform_id, game_fileName); updateItem.gamedb_id = Convert.ToInt64(gamedb_id); if (game_node.Element("Overview") != null) { updateItem.description = game_node.Element("Overview").Value; } if (game_node.Element("ReleaseDate") != null) { string strReleaseDate = game_node.Element("ReleaseDate").Value; DateTime releaseDateDate; if (DateTime.TryParse(strReleaseDate, out releaseDateDate)) { updateItem.release_year = releaseDateDate.Year; } } if (game_node.Element("ESRB") != null) { updateItem.rating = game_node.Element("ESRB").Value; } if (game_node.Element("Players") != null) { updateItem.players = game_node.Element("Players").Value; } if (game_node.Element("Co-op") != null) { if (game_node.Element("Co-op").Value == "Yes") { updateItem.co_op = 1; } else { updateItem.co_op = 0; } } else { updateItem.co_op = 0; } if (game_node.Element("Publisher") != null) { updateItem.publisher = game_node.Element("Publisher").Value; } if (game_node.Element("Developer") != null) { updateItem.developer = game_node.Element("Developer").Value; } if (game_node.Element("Rating") != null) { updateItem.gamedb_stars = Convert.ToDouble(game_node.Element("Rating").Value); } db.upsertGamesDataset(updateItem); infoBox.AppendText(game_fileName + " checked on http://thegamesdb.net/ ID number " + gamedb_id + "\n", Color.WhiteSmoke); } dataGridGames.FirstDisplayedScrollingRowIndex = selectedrows; }