public static bool TrySaveGame(string fileName) { try { if (string.IsNullOrEmpty(fileName)) { return(false); } // validate name & extension fileName = FileHelper.AddExtension(fileName, ".json"); // check for existing file & ask to override var fileExists = FileHelper.FileExists(Shipwreck.Settings.SavePath, fileName); if (fileExists) { var overwrite = ViewHelpers.OverwriteFileName(fileName); // TODO view reports an error when overwrite is false if (!overwrite) { return(false); } } // save filename to game Shipwreck.CurrentGame.SaveFileName = fileName; // write the file var gameString = JsonConvert.SerializeObject(Shipwreck.CurrentGame); var filePath = Path.Combine(Shipwreck.Settings.SavePath, fileName); File.WriteAllText(filePath, gameString); return(true); } catch (Exception ex) { return(false); } }