using System; using System.Collections.Generic; using System.Threading.Tasks; using Wino.Core.Domain.Entities; using Wino.Core.Domain.Enums; using Wino.Core.Domain.Models.Folders; namespace Wino.Core.Domain.Interfaces { public interface IDialogService { Task PickWindowsFolderAsync(); Task PickWindowsFileContentAsync(params object[] typeFilters); Task ShowConfirmationDialogAsync(string question, string title, string confirmationButtonTitle); Task ShowHardDeleteConfirmationAsync(); Task ShowRatingDialogAsync(); Task HandleSystemFolderConfigurationDialogAsync(Guid accountId, IFolderService folderService); Task ShowCustomThemeBuilderDialogAsync(); Task ShowMessageAsync(string message, string title); void InfoBarMessage(string title, string message, InfoBarMessageType messageType); void InfoBarMessage(string title, string message, InfoBarMessageType messageType, string actionButtonText, Action action); void ShowNotSupportedMessage(); // Custom dialogs Task ShowMoveMailFolderDialogAsync(List availableFolders); Task> ShowNewAccountMailProviderDialogAsync(List availableProviders); IAccountCreationDialog GetAccountCreationDialog(MailProviderType type); Task ShowTextInputDialogAsync(string currentInput, string dialogTitle, string dialogDescription); Task ShowEditAccountDialogAsync(MailAccount account); Task ShowAccountPickerDialogAsync(List 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); } }