using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Threading.Tasks; using Wino.Core.Domain.Entities.Calendar; using Wino.Core.Domain.Entities.Mail; using Wino.Core.Domain.Entities.Shared; using Wino.Core.Domain.Enums; using Wino.Core.Domain.Models; using Wino.Core.Domain.Models.Calendar; using Wino.Core.Domain.Models.Folders; namespace Wino.Core.Domain.Interfaces; public interface IMailDialogService : IDialogServiceBase { Task ShowHardDeleteConfirmationAsync(); Task HandleSystemFolderConfigurationDialogAsync(Guid accountId, IFolderService folderService); // Custom dialogs Task ShowMoveMailFolderDialogAsync(List availableFolders); Task ShowAccountPickerDialogAsync(List availableAccounts); Task ShowSingleCalendarPickerDialogAsync(List availableCalendarGroups); /// /// Displays a dialog to the user for reordering accounts. /// /// Available accounts in order. /// Result model that has dict of AccountId-AccountOrder. Task ShowAccountReorderDialogAsync(ObservableCollection availableAccounts); /// /// Presents a dialog to the user for selecting folder. /// /// Account to get folders for. /// The reason behind the picking operation /// Selected folder structure. Null if none. Task PickFolderAsync(Guid accountId, PickFolderReason reason, IFolderService folderService); /// /// Presents a dialog to the user for signature creation/modification. /// /// Signature information. Null if canceled. Task ShowSignatureEditorDialog(AccountSignature signatureModel = null); /// /// Presents a dialog to the user for account alias creation/modification. /// /// Created alias model if not canceled. Task ShowCreateAccountAliasDialogAsync(); /// /// Presents a dialog to the user to show email source. /// Task ShowMessageSourceDialogAsync(string messageSource); /// /// Presents a dialog to the user for keyboard shortcut creation/modification. /// /// Existing shortcut to edit, or null for new shortcut. /// Dialog result with shortcut information. #pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type. Task ShowKeyboardShortcutDialogAsync(KeyboardShortcut existingShortcut = null); #pragma warning restore CS8625 /// /// Presents a dialog to the user for contact creation/modification. /// /// Existing contact to edit, or null for new contact. /// Contact information. Null if canceled. Task ShowEditContactDialogAsync(AccountContact contact = null); }