// == I/O == public void ReadDatabaseFile(DatabaseJsonType jsonType) { if (jsonType != DatabaseJsonType.None) { AddTitles(DatabaseJsonIO.ReadTitlesFromJsonFile(jsonType.GetFilePath()), jsonType); titleSets[jsonType].Modified = false; } }
public static void WriteTitlesToJsonFile(ICollection <EshopTitle> titles, DatabaseJsonType jsonType) { List <EshopTitle> titleList = titles.ToList(); titleList.Sort(); JArray json = new JArray(titleList.Select(t => JObject.FromObject(t)).ToArray()); string filePath = jsonType.GetFilePath(); DialogResult shouldCreateBackup = MessageBox.Show(String.Format("Do you want to create a backup of {0} ?", filePath), "Question", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); if (shouldCreateBackup == DialogResult.Cancel) { return; } else if (shouldCreateBackup == DialogResult.Yes) { string backupFilePath = jsonType.GetBackupFilePath(); if (File.Exists(backupFilePath)) { if (MessageBox.Show("The backup file already exists.\nDo you want to overwrite it?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes) { File.Delete(backupFilePath); } else { return; } } File.Move(filePath, backupFilePath); } string jsonString = JsonArrayToString(json); File.WriteAllText(filePath, jsonString); Console.WriteLine("Wrote {0,5} titles to database file {1}", titleList.Count, filePath); }
public static string GetBackupFilePath(this DatabaseJsonType jsonType) { return(jsonType.GetFilePath() + ".bak"); }