namespace JdeScoping.SecureStoreManager.Services; /// /// Result from unsaved changes prompt. /// public enum UnsavedChangesResult { Save, DontSave, Cancel } /// /// Abstraction for platform-specific dialog operations. /// Enables unit testing of view models that need to show dialogs. /// public interface IDialogService { /// /// Shows an error message dialog. /// /// The error message to display. /// The dialog title. Task ShowErrorAsync(string message, string title); /// /// Shows an informational message dialog. /// /// The informational message to display. /// The dialog title. Task ShowInfoAsync(string message, string title); /// /// Shows a confirmation dialog with Yes/No options. /// /// The confirmation message to display. /// The dialog title. /// True if user clicked Yes, false otherwise. Task ShowConfirmationAsync(string message, string title); /// /// Shows a prompt for unsaved changes with Save/Don't Save/Cancel options. /// Task ShowUnsavedChangesPromptAsync(); /// /// Shows a save file dialog. /// /// Dialog title. /// Display name for the file type (e.g., "Key Files"). /// File pattern (e.g., "*.key"). /// Default extension (e.g., ".key"). /// Selected file path or null if cancelled. Task ShowSaveFileDialogAsync(string title, string fileTypeName, string pattern, string defaultExtension); /// /// Shows an open file dialog. /// /// Dialog title. /// Display name for the file type (e.g., "Key Files"). /// File pattern (e.g., "*.key"). /// Selected file path or null if cancelled. Task ShowOpenFileDialogAsync(string title, string fileTypeName, string pattern); }