public string SaveGame(IClearMine game, string path = null) { if (game == null) { throw new ArgumentNullException("game"); } if (String.IsNullOrWhiteSpace(path)) { var savePathDialog = new SaveFileDialog(); savePathDialog.DefaultExt = Settings.Default.SavedGameExt; savePathDialog.Filter = ResourceHelper.FindText("SavedGameFilter", Settings.Default.SavedGameExt); if (savePathDialog.ShowDialog() == true) { path = savePathDialog.FileName; } else { return(null); } } // Pause game to make sure the timestamp correct. game.PauseGame(); var gameSaver = new XmlSerializer(game.GetType()); using (var file = File.Open(path, FileMode.Create, FileAccess.Write)) { gameSaver.Serialize(file, game); } game.ResumeGame(); return(path); }
public string SaveGame(IClearMine game, string path = null) { if (game == null) throw new ArgumentNullException("game"); if (String.IsNullOrWhiteSpace(path)) { var savePathDialog = new SaveFileDialog(); savePathDialog.DefaultExt = Settings.Default.SavedGameExt; savePathDialog.Filter = ResourceHelper.FindText("SavedGameFilter", Settings.Default.SavedGameExt); if (savePathDialog.ShowDialog() == true) { path = savePathDialog.FileName; } else { return null; } } // Pause game to make sure the timestamp correct. game.PauseGame(); var gameSaver = new XmlSerializer(game.GetType()); using (var file = File.Open(path, FileMode.Create, FileAccess.Write)) { gameSaver.Serialize(file, game); } game.ResumeGame(); return path; }