public void SaveGame() { using (FileDialog dialog = new SaveFileDialog()) { dialog.Filter = DialogFileFilter; if (dialog.ShowDialog() == DialogResult.OK) { serializer.Serialize(board, dialog.FileName); } } }
public void SaveAll() { if (saveWorker != null) { return; } SaveDialogWIndow window = new SaveDialogWIndow(); window.FilesToSave = GameList.Count; window.Show(); saveWorker = new BackgroundWorker(); saveWorker.WorkerReportsProgress = true; saveWorker.DoWork += (object sender, DoWorkEventArgs e) => { int i = 0; foreach (Game game in GameList) { string path = Path.Combine("./games", game.FileName); if (File.Exists(path)) { File.Delete(path); } GameSerializer.Serialize(game, path); saveWorker.ReportProgress(++i); Thread.Sleep(1000); } }; saveWorker.ProgressChanged += (object sender, ProgressChangedEventArgs e) => { window.FilesSaved = e.ProgressPercentage; }; saveWorker.RunWorkerCompleted += (object sender, RunWorkerCompletedEventArgs e) => { window.Close(); saveWorker = null; }; saveWorker.RunWorkerAsync(); }