v2rayN/v2rayN/v2rayN.Desktop/Views/BackupAndRestoreView.axaml.cs

67 lines
2.2 KiB
C#
Raw Normal View History

2024-10-04 07:22:32 +00:00
using v2rayN.Desktop.Common;
namespace v2rayN.Desktop.Views;
public partial class BackupAndRestoreView : ReactiveUserControl<BackupAndRestoreViewModel>
2024-10-04 07:22:32 +00:00
{
private Window? _window;
2025-01-10 06:23:03 +00:00
public BackupAndRestoreView()
{
InitializeComponent();
}
2024-10-04 07:22:32 +00:00
public BackupAndRestoreView(Window window)
{
_window = window;
2024-10-04 07:22:32 +00:00
InitializeComponent();
menuLocalBackup.Click += MenuLocalBackup_Click;
menuLocalRestore.Click += MenuLocalRestore_Click;
2024-10-04 07:22:32 +00:00
ViewModel = new BackupAndRestoreViewModel(UpdateViewHandler);
2024-10-04 07:22:32 +00:00
this.WhenActivated(disposables =>
{
this.Bind(ViewModel, vm => vm.OperationMsg, v => v.txtMsg.Text).DisposeWith(disposables);
2024-10-04 07:22:32 +00:00
this.Bind(ViewModel, vm => vm.SelectedSource.Url, v => v.txtWebDavUrl.Text).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.SelectedSource.UserName, v => v.txtWebDavUserName.Text).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.SelectedSource.Password, v => v.txtWebDavPassword.Text).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.SelectedSource.DirName, v => v.txtWebDavDirName.Text).DisposeWith(disposables);
2024-10-04 07:22:32 +00:00
this.BindCommand(ViewModel, vm => vm.WebDavCheckCmd, v => v.menuWebDavCheck).DisposeWith(disposables);
2024-10-04 07:22:32 +00:00
this.BindCommand(ViewModel, vm => vm.RemoteBackupCmd, v => v.menuRemoteBackup).DisposeWith(disposables);
this.BindCommand(ViewModel, vm => vm.RemoteRestoreCmd, v => v.menuRemoteRestore).DisposeWith(disposables);
});
}
2024-10-04 07:22:32 +00:00
private async void MenuLocalBackup_Click(object? sender, RoutedEventArgs e)
{
var fileName = await UI.SaveFileDialog(_window, "Zip|*.zip");
if (fileName.IsNullOrEmpty())
2024-10-04 07:22:32 +00:00
{
return;
2024-10-04 07:22:32 +00:00
}
ViewModel?.LocalBackup(fileName);
}
2024-10-04 07:22:32 +00:00
private async void MenuLocalRestore_Click(object? sender, RoutedEventArgs e)
{
var fileName = await UI.OpenFileDialog(_window, null);
if (fileName.IsNullOrEmpty())
2024-10-04 07:22:32 +00:00
{
return;
2024-10-04 07:22:32 +00:00
}
ViewModel?.LocalRestore(fileName);
}
private async Task<bool> UpdateViewHandler(EViewAction action, object? obj)
{
return await Task.FromResult(true);
2024-10-04 07:22:32 +00:00
}
2025-01-30 09:10:05 +00:00
}