mirror of
https://github.com/2dust/v2rayN.git
synced 2025-04-19 21:52:25 +00:00
Improved backup and restore
Overwrite the configuration file directly in the main program
This commit is contained in:
parent
e122ea8146
commit
7884853098
3 changed files with 36 additions and 3 deletions
|
@ -73,5 +73,19 @@ namespace ServiceLib.Common
|
||||||
{
|
{
|
||||||
return _dbAsync.Table<T>();
|
return _dbAsync.Table<T>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task DisposeDbConnectionAsync()
|
||||||
|
{
|
||||||
|
await Task.Factory.StartNew(() =>
|
||||||
|
{
|
||||||
|
_db?.Close();
|
||||||
|
_db?.Dispose();
|
||||||
|
_db = null;
|
||||||
|
|
||||||
|
_dbAsync?.GetConnection()?.Close();
|
||||||
|
_dbAsync?.GetConnection()?.Dispose();
|
||||||
|
_dbAsync = null;
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -141,7 +141,21 @@ namespace ServiceLib.ViewModels
|
||||||
var result = await CreateZipFileFromDirectory(fileBackup);
|
var result = await CreateZipFileFromDirectory(fileBackup);
|
||||||
if (result)
|
if (result)
|
||||||
{
|
{
|
||||||
Locator.Current.GetService<MainWindowViewModel>()?.UpgradeApp(fileName);
|
var service = Locator.Current.GetService<MainWindowViewModel>();
|
||||||
|
await service?.MyAppExitAsync(true);
|
||||||
|
await SQLiteHelper.Instance.DisposeDbConnectionAsync();
|
||||||
|
|
||||||
|
var toPath = Utils.GetConfigPath();
|
||||||
|
FileManager.ZipExtractToFile(fileName, toPath, "");
|
||||||
|
|
||||||
|
if (Utils.IsWindows())
|
||||||
|
{
|
||||||
|
service?.RebootAsAdmin(false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
service?.Shutdown();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -343,6 +343,11 @@ namespace ServiceLib.ViewModels
|
||||||
_updateView?.Invoke(EViewAction.ShowHideWindow, blShow);
|
_updateView?.Invoke(EViewAction.ShowHideWindow, blShow);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void Shutdown()
|
||||||
|
{
|
||||||
|
_updateView?.Invoke(EViewAction.Shutdown, null);
|
||||||
|
}
|
||||||
|
|
||||||
#endregion Actions
|
#endregion Actions
|
||||||
|
|
||||||
#region Servers && Groups
|
#region Servers && Groups
|
||||||
|
@ -509,7 +514,7 @@ namespace ServiceLib.ViewModels
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task RebootAsAdmin()
|
public async Task RebootAsAdmin(bool blAdmin = true)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -519,7 +524,7 @@ namespace ServiceLib.ViewModels
|
||||||
Arguments = Global.RebootAs,
|
Arguments = Global.RebootAs,
|
||||||
WorkingDirectory = Utils.StartupPath(),
|
WorkingDirectory = Utils.StartupPath(),
|
||||||
FileName = Utils.GetExePath().AppendQuotes(),
|
FileName = Utils.GetExePath().AppendQuotes(),
|
||||||
Verb = "runas",
|
Verb = blAdmin ? "runas" : null,
|
||||||
};
|
};
|
||||||
Process.Start(startInfo);
|
Process.Start(startInfo);
|
||||||
await MyAppExitAsync(false);
|
await MyAppExitAsync(false);
|
||||||
|
|
Loading…
Reference in a new issue