[#69] Elwig: Add functionality to upload and replace database
All checks were successful
Test / Run tests (push) Successful in 2m23s
All checks were successful
Test / Run tests (push) Successful in 2m23s
This commit is contained in:
@@ -370,6 +370,28 @@ namespace Elwig.Helpers.Export {
|
||||
}.Export(filename);
|
||||
}
|
||||
|
||||
public static void ImportDatabase(string filename) {
|
||||
var oldName = Path.ChangeExtension(App.Config.DatabaseFile, ".old.sqlite3");
|
||||
var newName = Path.ChangeExtension(App.Config.DatabaseFile, ".new.sqlite3");
|
||||
try {
|
||||
using (var zip = ZipFile.Open(filename, ZipArchiveMode.Read)) {
|
||||
var db = zip.GetEntry("database.sqlite3")!;
|
||||
db.ExtractToFile(newName, true);
|
||||
}
|
||||
File.Move(App.Config.DatabaseFile, oldName, true);
|
||||
File.Move(newName, App.Config.DatabaseFile, false);
|
||||
} finally {
|
||||
if (File.Exists(newName))
|
||||
File.Delete(newName);
|
||||
}
|
||||
}
|
||||
|
||||
public static void ExportDatabase(string filename) {
|
||||
File.Delete(filename);
|
||||
using var zip = ZipFile.Open(filename, ZipArchiveMode.Create);
|
||||
var db = zip.CreateEntryFromFile(App.Config.DatabaseFile, "database.sqlite3", CompressionLevel.SmallestSize);
|
||||
}
|
||||
|
||||
public class ElwigExport {
|
||||
public (IEnumerable<Member> Members, IEnumerable<string> Filters)? Members { get; set; }
|
||||
public (IEnumerable<AreaCom> AreaComs, IEnumerable<string> Filters)? AreaComs { get; set; }
|
||||
|
Reference in New Issue
Block a user