private void DeleteSaveGame(CartridgeSavegame savegame) { // Confirm if (MessageBox.Show( String.Format("Savegame {0} will be deleted. Do you want to continue?", savegame.Name), "Delete savegame", MessageBoxButton.OKCancel) != MessageBoxResult.OK) { return; } // Delete. CartridgeTag.RemoveSavegame(savegame); }
private void OnSavegameCustomMessageBoxDismissed(object sender, DismissedEventArgs e) { CustomMessageBox cmb = (CustomMessageBox)sender; // Unregisters events. cmb.Dismissed -= new EventHandler <DismissedEventArgs>(OnSavegameCustomMessageBoxDismissed); // Only moves on if OK has been pushed. if (e.Result != CustomMessageBoxResult.LeftButton) { return; } // Gets the associated savegame. Controls.SavegameMessageBoxContentControl content = cmb.Content as Controls.SavegameMessageBoxContentControl; if (content == null) { throw new InvalidOperationException("Message box has no SavegameMessageBoxContentControl."); } CartridgeSavegame cs = content.Savegame; if (cs == null) { throw new InvalidOperationException("SavegameMessageBoxContentControl has no CartridgeSavegame."); } // If the name already exists, asks if the old savegame should be replaced. CartridgeTag tag = GetCurrentTag(); CartridgeSavegame oldCSWithSameName = GetSavegameByName(content.Name); if (oldCSWithSameName != null) { // Asks for replacing the savegame. if (MessageBox.Show( String.Format("A savegame named {0} already exists for this cartridge. Do you want to override it?", content.Name), "Replace savegame?", MessageBoxButton.OKCancel) == MessageBoxResult.OK) { // Go: deletes the old savegame and continues. tag.RemoveSavegame(oldCSWithSameName); } else { // No-go: prompt for another name. ShowNewSavegameMessageBox(cs); // Don't go further return; } } // Edits the savegame. cs.Name = content.Name; cs.HashColor = content.HashColor; // Commit. cs.ExportToIsoStore(); // Adds an history entry for this savegame. _appViewModel.Model.History.AddSavedGame(tag, cs); // Adds the savegame to the tag. tag.AddSavegame(cs); }