using Avalonia.Controls;
using Avalonia.Interactivity;
using JdeScoping.ConfigManager.Core.Constants;
using JdeScoping.ConfigManager.Ui.ViewModels.Dialogs;
using MsBox.Avalonia;
using MsBox.Avalonia.Enums;
namespace JdeScoping.ConfigManager.Ui.Views.Dialogs;
///
/// Dialog for adding or editing a secret in the secure store.
///
public partial class SecretEditDialog : Window
{
///
/// Gets the view model for this dialog.
///
public SecretEditDialogViewModel ViewModel => (SecretEditDialogViewModel)DataContext!;
///
/// Initializes a new instance of the class for creating a new secret.
///
public SecretEditDialog()
{
InitializeComponent();
DataContext = new SecretEditDialogViewModel();
}
///
/// Initializes a new instance of the class for editing an existing secret.
///
/// The secret key.
/// The secret value.
public SecretEditDialog(string key, string value)
{
InitializeComponent();
DataContext = new SecretEditDialogViewModel(key, value);
}
private async void SaveButton_Click(object? sender, RoutedEventArgs e)
{
if (!ViewModel.IsValid)
{
var box = MessageBoxManager.GetMessageBoxStandard(
SecureStoreStrings.ValidationErrorTitle,
ViewModel.ValidationError ?? SecureStoreStrings.DefaultValidationError,
ButtonEnum.Ok,
MsBox.Avalonia.Enums.Icon.Warning);
await box.ShowWindowDialogAsync(this);
return;
}
Close(true);
}
private void CancelButton_Click(object? sender, RoutedEventArgs e)
{
Close(false);
}
}