diff --git a/Wino.Core.Domain/Interfaces/IDialogServiceBase.cs b/Wino.Core.Domain/Interfaces/IDialogServiceBase.cs index cb86603e..42789f42 100644 --- a/Wino.Core.Domain/Interfaces/IDialogServiceBase.cs +++ b/Wino.Core.Domain/Interfaces/IDialogServiceBase.cs @@ -27,7 +27,7 @@ namespace Wino.Core.Domain.Interfaces string dontAskAgainConfigurationKey = ""); Task ShowCustomThemeBuilderDialogAsync(); Task ShowAccountProviderSelectionDialogAsync(List availableProviders); - IAccountCreationDialog GetAccountCreationDialog(MailProviderType type); + IAccountCreationDialog GetAccountCreationDialog(AccountCreationDialogResult accountCreationDialogResult); Task> PickFilesAsync(params object[] typeFilters); Task PickFilePathAsync(string saveFileName); } diff --git a/Wino.Core.Domain/Interfaces/ICustomServerAccountCreationDialog.cs b/Wino.Core.Domain/Interfaces/IImapAccountCreationDialog.cs similarity index 90% rename from Wino.Core.Domain/Interfaces/ICustomServerAccountCreationDialog.cs rename to Wino.Core.Domain/Interfaces/IImapAccountCreationDialog.cs index 2bc7f19f..9230aec0 100644 --- a/Wino.Core.Domain/Interfaces/ICustomServerAccountCreationDialog.cs +++ b/Wino.Core.Domain/Interfaces/IImapAccountCreationDialog.cs @@ -3,7 +3,7 @@ using Wino.Core.Domain.Entities.Shared; namespace Wino.Core.Domain.Interfaces { - public interface ICustomServerAccountCreationDialog : IAccountCreationDialog + public interface IImapAccountCreationDialog : IAccountCreationDialog { /// /// Returns the custom server information from the dialog.. diff --git a/Wino.Core.Domain/Interfaces/ISpecialImapProviderConfigResolver.cs b/Wino.Core.Domain/Interfaces/ISpecialImapProviderConfigResolver.cs new file mode 100644 index 00000000..34c35dbe --- /dev/null +++ b/Wino.Core.Domain/Interfaces/ISpecialImapProviderConfigResolver.cs @@ -0,0 +1,10 @@ +using Wino.Core.Domain.Entities.Shared; +using Wino.Core.Domain.Models.Accounts; + +namespace Wino.Core.Domain.Interfaces +{ + public interface ISpecialImapProviderConfigResolver + { + CustomServerInformation GetServerInformation(MailAccount account, AccountCreationDialogResult dialogResult); + } +} diff --git a/Wino.Core.Domain/Models/Accounts/AccountCreationDialogResult.cs b/Wino.Core.Domain/Models/Accounts/AccountCreationDialogResult.cs index 428d1307..961a0d1a 100644 --- a/Wino.Core.Domain/Models/Accounts/AccountCreationDialogResult.cs +++ b/Wino.Core.Domain/Models/Accounts/AccountCreationDialogResult.cs @@ -2,5 +2,5 @@ namespace Wino.Core.Domain.Models.Accounts { - public record AccountCreationDialogResult(MailProviderType ProviderType, string AccountName, string AccountColorHex = ""); + public record AccountCreationDialogResult(MailProviderType ProviderType, string AccountName, SpecialImapProviderDetails SpecialImapProviderDetails); } diff --git a/Wino.Core.Domain/Models/Accounts/SpecialImapProviderDetails.cs b/Wino.Core.Domain/Models/Accounts/SpecialImapProviderDetails.cs new file mode 100644 index 00000000..5f3b489c --- /dev/null +++ b/Wino.Core.Domain/Models/Accounts/SpecialImapProviderDetails.cs @@ -0,0 +1,6 @@ +using Wino.Core.Domain.Enums; + +namespace Wino.Core.Domain.Models.Accounts +{ + public record SpecialImapProviderDetails(string Address, string Password, string SenderName, SpecialImapProvider SpecialImapProvider); +} diff --git a/Wino.Core.UWP/Controls/AccountCreationDialogControl.xaml b/Wino.Core.UWP/Controls/AccountCreationDialogControl.xaml new file mode 100644 index 00000000..ae38dd73 --- /dev/null +++ b/Wino.Core.UWP/Controls/AccountCreationDialogControl.xaml @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + - -