using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Threading.Tasks; using Wino.Core.Domain.Entities.Mail; using Wino.Core.Domain.Entities.Shared; using Wino.Core.Domain.Enums; 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); /// /// 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); }