diff --git a/.editorconfig b/.editorconfig
index b06e6570..c686ec1f 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -149,7 +149,7 @@ csharp_preferred_modifier_order = public,private,protected,internal,static,exter
# Code-block preferences
csharp_prefer_braces = true:silent
csharp_prefer_simple_using_statement = true:suggestion
-csharp_style_namespace_declarations = file_scoped:error
+csharp_style_namespace_declarations = block_scoped:silent
# Expression-level preferences
csharp_prefer_simple_default_expression = true:suggestion
@@ -287,6 +287,4 @@ csharp_style_prefer_top_level_statements = true:silent
csharp_style_prefer_utf8_string_literals = true:suggestion
csharp_style_prefer_readonly_struct = true:suggestion
csharp_style_allow_blank_line_after_token_in_conditional_expression_experimental = true:silent
-csharp_style_allow_blank_line_after_token_in_arrow_expression_clause_experimental = true:silent
-csharp_style_prefer_primary_constructors = true:silent
-csharp_prefer_system_threading_lock = true:suggestion
\ No newline at end of file
+csharp_style_allow_blank_line_after_token_in_arrow_expression_clause_experimental = true:silent
\ No newline at end of file
diff --git a/Wino.Authentication/BaseAuthenticator.cs b/Wino.Authentication/BaseAuthenticator.cs
index 29fbb757..4e3664df 100644
--- a/Wino.Authentication/BaseAuthenticator.cs
+++ b/Wino.Authentication/BaseAuthenticator.cs
@@ -1,16 +1,17 @@
using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Interfaces;
-namespace Wino.Authentication;
-
-public abstract class BaseAuthenticator
+namespace Wino.Authentication
{
- public abstract MailProviderType ProviderType { get; }
- protected IAuthenticatorConfig AuthenticatorConfig { get; }
-
- protected BaseAuthenticator(IAuthenticatorConfig authenticatorConfig)
+ public abstract class BaseAuthenticator
{
+ public abstract MailProviderType ProviderType { get; }
+ protected IAuthenticatorConfig AuthenticatorConfig { get; }
- AuthenticatorConfig = authenticatorConfig;
+ protected BaseAuthenticator(IAuthenticatorConfig authenticatorConfig)
+ {
+
+ AuthenticatorConfig = authenticatorConfig;
+ }
}
}
diff --git a/Wino.Authentication/GmailAuthenticator.cs b/Wino.Authentication/GmailAuthenticator.cs
index 506d0448..901df797 100644
--- a/Wino.Authentication/GmailAuthenticator.cs
+++ b/Wino.Authentication/GmailAuthenticator.cs
@@ -7,44 +7,45 @@ using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Interfaces;
using Wino.Core.Domain.Models.Authentication;
-namespace Wino.Authentication;
-
-public class GmailAuthenticator : BaseAuthenticator, IGmailAuthenticator
+namespace Wino.Authentication
{
- public GmailAuthenticator(IAuthenticatorConfig authConfig) : base(authConfig)
+ public class GmailAuthenticator : BaseAuthenticator, IGmailAuthenticator
{
- }
-
- public string ClientId => AuthenticatorConfig.GmailAuthenticatorClientId;
- public bool ProposeCopyAuthURL { get; set; }
-
- public override MailProviderType ProviderType => MailProviderType.Gmail;
-
- ///
- /// Generates the token information for the given account.
- /// For gmail, interactivity is automatically handled when you get the token.
- ///
- /// Account to get token for.
- public Task GenerateTokenInformationAsync(MailAccount account)
- => GetTokenInformationAsync(account);
-
- public async Task GetTokenInformationAsync(MailAccount account)
- {
- var userCredential = await GetGoogleUserCredentialAsync(account);
-
- if (userCredential.Token.IsStale)
+ public GmailAuthenticator(IAuthenticatorConfig authConfig) : base(authConfig)
{
- await userCredential.RefreshTokenAsync(CancellationToken.None);
}
- return new TokenInformationEx(userCredential.Token.AccessToken, account.Address);
- }
+ public string ClientId => AuthenticatorConfig.GmailAuthenticatorClientId;
+ public bool ProposeCopyAuthURL { get; set; }
- private Task GetGoogleUserCredentialAsync(MailAccount account)
- {
- return GoogleWebAuthorizationBroker.AuthorizeAsync(new ClientSecrets()
+ public override MailProviderType ProviderType => MailProviderType.Gmail;
+
+ ///
+ /// Generates the token information for the given account.
+ /// For gmail, interactivity is automatically handled when you get the token.
+ ///
+ /// Account to get token for.
+ public Task GenerateTokenInformationAsync(MailAccount account)
+ => GetTokenInformationAsync(account);
+
+ public async Task GetTokenInformationAsync(MailAccount account)
{
- ClientId = ClientId
- }, AuthenticatorConfig.GmailScope, account.Id.ToString(), CancellationToken.None, new FileDataStore(AuthenticatorConfig.GmailTokenStoreIdentifier));
+ var userCredential = await GetGoogleUserCredentialAsync(account);
+
+ if (userCredential.Token.IsStale)
+ {
+ await userCredential.RefreshTokenAsync(CancellationToken.None);
+ }
+
+ return new TokenInformationEx(userCredential.Token.AccessToken, account.Address);
+ }
+
+ private Task GetGoogleUserCredentialAsync(MailAccount account)
+ {
+ return GoogleWebAuthorizationBroker.AuthorizeAsync(new ClientSecrets()
+ {
+ ClientId = ClientId
+ }, AuthenticatorConfig.GmailScope, account.Id.ToString(), CancellationToken.None, new FileDataStore(AuthenticatorConfig.GmailTokenStoreIdentifier));
+ }
}
}
diff --git a/Wino.Authentication/OutlookAuthenticator.cs b/Wino.Authentication/OutlookAuthenticator.cs
index 106f9717..8bdcfb27 100644
--- a/Wino.Authentication/OutlookAuthenticator.cs
+++ b/Wino.Authentication/OutlookAuthenticator.cs
@@ -11,115 +11,116 @@ using Wino.Core.Domain.Exceptions;
using Wino.Core.Domain.Interfaces;
using Wino.Core.Domain.Models.Authentication;
-namespace Wino.Authentication;
-
-public class OutlookAuthenticator : BaseAuthenticator, IOutlookAuthenticator
+namespace Wino.Authentication
{
- private const string TokenCacheFileName = "OutlookCache.bin";
- private bool isTokenCacheAttached = false;
-
- // Outlook
- private const string Authority = "https://login.microsoftonline.com/common";
-
- public override MailProviderType ProviderType => MailProviderType.Outlook;
-
- private readonly IPublicClientApplication _publicClientApplication;
- private readonly IApplicationConfiguration _applicationConfiguration;
-
- public OutlookAuthenticator(INativeAppService nativeAppService,
- IApplicationConfiguration applicationConfiguration,
- IAuthenticatorConfig authenticatorConfig) : base(authenticatorConfig)
+ public class OutlookAuthenticator : BaseAuthenticator, IOutlookAuthenticator
{
- _applicationConfiguration = applicationConfiguration;
+ private const string TokenCacheFileName = "OutlookCache.bin";
+ private bool isTokenCacheAttached = false;
- var authenticationRedirectUri = nativeAppService.GetWebAuthenticationBrokerUri();
+ // Outlook
+ private const string Authority = "https://login.microsoftonline.com/common";
- var options = new BrokerOptions(BrokerOptions.OperatingSystems.Windows)
+ public override MailProviderType ProviderType => MailProviderType.Outlook;
+
+ private readonly IPublicClientApplication _publicClientApplication;
+ private readonly IApplicationConfiguration _applicationConfiguration;
+
+ public OutlookAuthenticator(INativeAppService nativeAppService,
+ IApplicationConfiguration applicationConfiguration,
+ IAuthenticatorConfig authenticatorConfig) : base(authenticatorConfig)
{
- Title = "Wino Mail",
- ListOperatingSystemAccounts = true,
- };
+ _applicationConfiguration = applicationConfiguration;
- var outlookAppBuilder = PublicClientApplicationBuilder.Create(AuthenticatorConfig.OutlookAuthenticatorClientId)
- .WithParentActivityOrWindow(nativeAppService.GetCoreWindowHwnd)
- .WithBroker(options)
- .WithDefaultRedirectUri()
- .WithAuthority(Authority);
+ var authenticationRedirectUri = nativeAppService.GetWebAuthenticationBrokerUri();
- _publicClientApplication = outlookAppBuilder.Build();
- }
+ var options = new BrokerOptions(BrokerOptions.OperatingSystems.Windows)
+ {
+ Title = "Wino Mail",
+ ListOperatingSystemAccounts = true,
+ };
- public string[] Scope => AuthenticatorConfig.OutlookScope;
+ var outlookAppBuilder = PublicClientApplicationBuilder.Create(AuthenticatorConfig.OutlookAuthenticatorClientId)
+ .WithParentActivityOrWindow(nativeAppService.GetCoreWindowHwnd)
+ .WithBroker(options)
+ .WithDefaultRedirectUri()
+ .WithAuthority(Authority);
- private async Task EnsureTokenCacheAttachedAsync()
- {
- if (!isTokenCacheAttached)
- {
- var storageProperties = new StorageCreationPropertiesBuilder(TokenCacheFileName, _applicationConfiguration.PublisherSharedFolderPath).Build();
- var msalcachehelper = await MsalCacheHelper.CreateAsync(storageProperties);
- msalcachehelper.RegisterCache(_publicClientApplication.UserTokenCache);
-
- isTokenCacheAttached = true;
+ _publicClientApplication = outlookAppBuilder.Build();
}
- }
- public async Task GetTokenInformationAsync(MailAccount account)
- {
- await EnsureTokenCacheAttachedAsync();
+ public string[] Scope => AuthenticatorConfig.OutlookScope;
- var storedAccount = (await _publicClientApplication.GetAccountsAsync()).FirstOrDefault(a => a.Username == account.Address);
-
- if (storedAccount == null)
- return await GenerateTokenInformationAsync(account);
-
- try
+ private async Task EnsureTokenCacheAttachedAsync()
{
- var authResult = await _publicClientApplication.AcquireTokenSilent(Scope, storedAccount).ExecuteAsync();
+ if (!isTokenCacheAttached)
+ {
+ var storageProperties = new StorageCreationPropertiesBuilder(TokenCacheFileName, _applicationConfiguration.PublisherSharedFolderPath).Build();
+ var msalcachehelper = await MsalCacheHelper.CreateAsync(storageProperties);
+ msalcachehelper.RegisterCache(_publicClientApplication.UserTokenCache);
- return new TokenInformationEx(authResult.AccessToken, authResult.Account.Username);
+ isTokenCacheAttached = true;
+ }
}
- catch (MsalUiRequiredException)
- {
- // Somehow MSAL is not able to refresh the token silently.
- // Force interactive login.
- return await GenerateTokenInformationAsync(account);
- }
- catch (Exception)
- {
- throw;
- }
- }
-
- public async Task GenerateTokenInformationAsync(MailAccount account)
- {
- try
+ public async Task GetTokenInformationAsync(MailAccount account)
{
await EnsureTokenCacheAttachedAsync();
- var authResult = await _publicClientApplication
- .AcquireTokenInteractive(Scope)
- .ExecuteAsync();
+ var storedAccount = (await _publicClientApplication.GetAccountsAsync()).FirstOrDefault(a => a.Username == account.Address);
- // If the account is null, it means it's the initial creation of it.
- // If not, make sure the authenticated user address matches the username.
- // When people refresh their token, accounts must match.
+ if (storedAccount == null)
+ return await GenerateTokenInformationAsync(account);
- if (account?.Address != null && !account.Address.Equals(authResult.Account.Username, StringComparison.OrdinalIgnoreCase))
+ try
{
- throw new AuthenticationException("Authenticated address does not match with your account address.");
+ var authResult = await _publicClientApplication.AcquireTokenSilent(Scope, storedAccount).ExecuteAsync();
+
+ return new TokenInformationEx(authResult.AccessToken, authResult.Account.Username);
+ }
+ catch (MsalUiRequiredException)
+ {
+ // Somehow MSAL is not able to refresh the token silently.
+ // Force interactive login.
+
+ return await GenerateTokenInformationAsync(account);
+ }
+ catch (Exception)
+ {
+ throw;
+ }
+ }
+
+ public async Task GenerateTokenInformationAsync(MailAccount account)
+ {
+ try
+ {
+ await EnsureTokenCacheAttachedAsync();
+
+ var authResult = await _publicClientApplication
+ .AcquireTokenInteractive(Scope)
+ .ExecuteAsync();
+
+ // If the account is null, it means it's the initial creation of it.
+ // If not, make sure the authenticated user address matches the username.
+ // When people refresh their token, accounts must match.
+
+ if (account?.Address != null && !account.Address.Equals(authResult.Account.Username, StringComparison.OrdinalIgnoreCase))
+ {
+ throw new AuthenticationException("Authenticated address does not match with your account address.");
+ }
+
+ return new TokenInformationEx(authResult.AccessToken, authResult.Account.Username);
+ }
+ catch (MsalClientException msalClientException)
+ {
+ if (msalClientException.ErrorCode == "authentication_canceled" || msalClientException.ErrorCode == "access_denied")
+ throw new AccountSetupCanceledException();
+
+ throw;
}
- return new TokenInformationEx(authResult.AccessToken, authResult.Account.Username);
+ throw new AuthenticationException(Translator.Exception_UnknowErrorDuringAuthentication, new Exception(Translator.Exception_TokenGenerationFailed));
}
- catch (MsalClientException msalClientException)
- {
- if (msalClientException.ErrorCode == "authentication_canceled" || msalClientException.ErrorCode == "access_denied")
- throw new AccountSetupCanceledException();
-
- throw;
- }
-
- throw new AuthenticationException(Translator.Exception_UnknowErrorDuringAuthentication, new Exception(Translator.Exception_TokenGenerationFailed));
}
}
diff --git a/Wino.Calendar/Services/CalendarAuthenticatorConfig.cs b/Wino.Calendar/Services/CalendarAuthenticatorConfig.cs
index 391ff7f2..f139ff59 100644
--- a/Wino.Calendar/Services/CalendarAuthenticatorConfig.cs
+++ b/Wino.Calendar/Services/CalendarAuthenticatorConfig.cs
@@ -1,32 +1,33 @@
using Wino.Core.Domain.Interfaces;
-namespace Wino.Calendar.Services;
-
-public class CalendarAuthenticatorConfig : IAuthenticatorConfig
+namespace Wino.Calendar.Services
{
- public string OutlookAuthenticatorClientId => "b19c2035-d740-49ff-b297-de6ec561b208";
-
- public string[] OutlookScope => new string[]
+ public class CalendarAuthenticatorConfig : IAuthenticatorConfig
{
- "Calendars.Read",
- "Calendars.Read.Shared",
- "offline_access",
- "Calendars.ReadBasic",
- "Calendars.ReadWrite",
- "Calendars.ReadWrite.Shared",
- "User.Read"
- };
+ public string OutlookAuthenticatorClientId => "b19c2035-d740-49ff-b297-de6ec561b208";
- public string GmailAuthenticatorClientId => "973025879644-s7b4ur9p3rlgop6a22u7iuptdc0brnrn.apps.googleusercontent.com";
+ public string[] OutlookScope => new string[]
+ {
+ "Calendars.Read",
+ "Calendars.Read.Shared",
+ "offline_access",
+ "Calendars.ReadBasic",
+ "Calendars.ReadWrite",
+ "Calendars.ReadWrite.Shared",
+ "User.Read"
+ };
- public string[] GmailScope => new string[]
- {
- "https://www.googleapis.com/auth/calendar",
- "https://www.googleapis.com/auth/calendar.events",
- "https://www.googleapis.com/auth/calendar.settings.readonly",
- "https://www.googleapis.com/auth/userinfo.profile",
- "https://www.googleapis.com/auth/userinfo.email"
- };
+ public string GmailAuthenticatorClientId => "973025879644-s7b4ur9p3rlgop6a22u7iuptdc0brnrn.apps.googleusercontent.com";
- public string GmailTokenStoreIdentifier => "WinoCalendarGmailTokenStore";
+ public string[] GmailScope => new string[]
+ {
+ "https://www.googleapis.com/auth/calendar",
+ "https://www.googleapis.com/auth/calendar.events",
+ "https://www.googleapis.com/auth/calendar.settings.readonly",
+ "https://www.googleapis.com/auth/userinfo.profile",
+ "https://www.googleapis.com/auth/userinfo.email"
+ };
+
+ public string GmailTokenStoreIdentifier => "WinoCalendarGmailTokenStore";
+ }
}
diff --git a/Wino.Core.Domain/Collections/CalendarEventCollection.cs b/Wino.Core.Domain/Collections/CalendarEventCollection.cs
index 94a1eef6..f6eb6c68 100644
--- a/Wino.Core.Domain/Collections/CalendarEventCollection.cs
+++ b/Wino.Core.Domain/Collections/CalendarEventCollection.cs
@@ -7,149 +7,150 @@ using Wino.Core.Domain.Entities.Calendar;
using Wino.Core.Domain.Interfaces;
using Wino.Core.Domain.Models.Calendar;
-namespace Wino.Core.Domain.Collections;
-
-public class CalendarEventCollection
+namespace Wino.Core.Domain.Collections
{
- public event EventHandler CalendarItemAdded;
- public event EventHandler CalendarItemRemoved;
-
- public event EventHandler CalendarItemsCleared;
-
- private ObservableRangeCollection _internalRegularEvents = [];
- private ObservableRangeCollection _internalAllDayEvents = [];
-
- public ReadOnlyObservableCollection RegularEvents { get; }
- public ReadOnlyObservableCollection AllDayEvents { get; } // TODO: Rename this to include multi-day events.
- public ITimePeriod Period { get; }
- public CalendarSettings Settings { get; }
-
- private readonly List _allItems = new List();
-
- public CalendarEventCollection(ITimePeriod period, CalendarSettings settings)
+ public class CalendarEventCollection
{
- Period = period;
- Settings = settings;
+ public event EventHandler CalendarItemAdded;
+ public event EventHandler CalendarItemRemoved;
- RegularEvents = new ReadOnlyObservableCollection(_internalRegularEvents);
- AllDayEvents = new ReadOnlyObservableCollection(_internalAllDayEvents);
- }
+ public event EventHandler CalendarItemsCleared;
- public bool HasCalendarEvent(AccountCalendar accountCalendar)
- => _allItems.Any(x => x.AssignedCalendar.Id == accountCalendar.Id);
+ private ObservableRangeCollection _internalRegularEvents = [];
+ private ObservableRangeCollection _internalAllDayEvents = [];
- public ICalendarItem GetCalendarItem(Guid calendarItemId)
- {
- return _allItems.FirstOrDefault(x => x.Id == calendarItemId);
- }
+ public ReadOnlyObservableCollection RegularEvents { get; }
+ public ReadOnlyObservableCollection AllDayEvents { get; } // TODO: Rename this to include multi-day events.
+ public ITimePeriod Period { get; }
+ public CalendarSettings Settings { get; }
- public void ClearSelectionStates()
- {
- foreach (var item in _allItems)
+ private readonly List _allItems = new List();
+
+ public CalendarEventCollection(ITimePeriod period, CalendarSettings settings)
{
- if (item is ICalendarItemViewModel calendarItemViewModel)
+ Period = period;
+ Settings = settings;
+
+ RegularEvents = new ReadOnlyObservableCollection(_internalRegularEvents);
+ AllDayEvents = new ReadOnlyObservableCollection(_internalAllDayEvents);
+ }
+
+ public bool HasCalendarEvent(AccountCalendar accountCalendar)
+ => _allItems.Any(x => x.AssignedCalendar.Id == accountCalendar.Id);
+
+ public ICalendarItem GetCalendarItem(Guid calendarItemId)
+ {
+ return _allItems.FirstOrDefault(x => x.Id == calendarItemId);
+ }
+
+ public void ClearSelectionStates()
+ {
+ foreach (var item in _allItems)
{
- calendarItemViewModel.IsSelected = false;
+ if (item is ICalendarItemViewModel calendarItemViewModel)
+ {
+ calendarItemViewModel.IsSelected = false;
+ }
}
}
- }
- public void FilterByCalendars(IEnumerable visibleCalendarIds)
- {
- foreach (var item in _allItems)
+ public void FilterByCalendars(IEnumerable visibleCalendarIds)
{
- var collections = GetProperCollectionsForCalendarItem(item);
+ foreach (var item in _allItems)
+ {
+ var collections = GetProperCollectionsForCalendarItem(item);
+
+ foreach (var collection in collections)
+ {
+ if (!visibleCalendarIds.Contains(item.AssignedCalendar.Id) && collection.Contains(item))
+ {
+ RemoveCalendarItemInternal(collection, item, false);
+ }
+ else if (visibleCalendarIds.Contains(item.AssignedCalendar.Id) && !collection.Contains(item))
+ {
+ AddCalendarItemInternal(collection, item, false);
+ }
+ }
+ }
+ }
+
+ private IEnumerable> GetProperCollectionsForCalendarItem(ICalendarItem calendarItem)
+ {
+ // All-day events go to all days.
+ // Multi-day events go to both.
+ // Anything else goes to regular.
+
+ if (calendarItem.IsAllDayEvent)
+ {
+ return [_internalAllDayEvents];
+ }
+ else if (calendarItem.IsMultiDayEvent)
+ {
+ return [_internalRegularEvents, _internalAllDayEvents];
+ }
+ else
+ {
+ return [_internalRegularEvents];
+ }
+ }
+
+ public void AddCalendarItem(ICalendarItem calendarItem)
+ {
+ var collections = GetProperCollectionsForCalendarItem(calendarItem);
foreach (var collection in collections)
{
- if (!visibleCalendarIds.Contains(item.AssignedCalendar.Id) && collection.Contains(item))
- {
- RemoveCalendarItemInternal(collection, item, false);
- }
- else if (visibleCalendarIds.Contains(item.AssignedCalendar.Id) && !collection.Contains(item))
- {
- AddCalendarItemInternal(collection, item, false);
- }
+ AddCalendarItemInternal(collection, calendarItem);
}
}
- }
- private IEnumerable> GetProperCollectionsForCalendarItem(ICalendarItem calendarItem)
- {
- // All-day events go to all days.
- // Multi-day events go to both.
- // Anything else goes to regular.
-
- if (calendarItem.IsAllDayEvent)
+ public void RemoveCalendarItem(ICalendarItem calendarItem)
{
- return [_internalAllDayEvents];
- }
- else if (calendarItem.IsMultiDayEvent)
- {
- return [_internalRegularEvents, _internalAllDayEvents];
- }
- else
- {
- return [_internalRegularEvents];
- }
- }
+ var collections = GetProperCollectionsForCalendarItem(calendarItem);
- public void AddCalendarItem(ICalendarItem calendarItem)
- {
- var collections = GetProperCollectionsForCalendarItem(calendarItem);
-
- foreach (var collection in collections)
- {
- AddCalendarItemInternal(collection, calendarItem);
- }
- }
-
- public void RemoveCalendarItem(ICalendarItem calendarItem)
- {
- var collections = GetProperCollectionsForCalendarItem(calendarItem);
-
- foreach (var collection in collections)
- {
- RemoveCalendarItemInternal(collection, calendarItem);
- }
- }
-
- private void AddCalendarItemInternal(ObservableRangeCollection collection, ICalendarItem calendarItem, bool create = true)
- {
- if (calendarItem is not ICalendarItemViewModel)
- throw new ArgumentException("CalendarItem must be of type ICalendarItemViewModel", nameof(calendarItem));
-
- collection.Add(calendarItem);
-
- if (create)
- {
- _allItems.Add(calendarItem);
+ foreach (var collection in collections)
+ {
+ RemoveCalendarItemInternal(collection, calendarItem);
+ }
}
- CalendarItemAdded?.Invoke(this, calendarItem);
- }
-
- private void RemoveCalendarItemInternal(ObservableRangeCollection collection, ICalendarItem calendarItem, bool destroy = true)
- {
- if (calendarItem is not ICalendarItemViewModel)
- throw new ArgumentException("CalendarItem must be of type ICalendarItemViewModel", nameof(calendarItem));
-
- collection.Remove(calendarItem);
-
- if (destroy)
+ private void AddCalendarItemInternal(ObservableRangeCollection collection, ICalendarItem calendarItem, bool create = true)
{
- _allItems.Remove(calendarItem);
+ if (calendarItem is not ICalendarItemViewModel)
+ throw new ArgumentException("CalendarItem must be of type ICalendarItemViewModel", nameof(calendarItem));
+
+ collection.Add(calendarItem);
+
+ if (create)
+ {
+ _allItems.Add(calendarItem);
+ }
+
+ CalendarItemAdded?.Invoke(this, calendarItem);
}
- CalendarItemRemoved?.Invoke(this, calendarItem);
- }
+ private void RemoveCalendarItemInternal(ObservableRangeCollection collection, ICalendarItem calendarItem, bool destroy = true)
+ {
+ if (calendarItem is not ICalendarItemViewModel)
+ throw new ArgumentException("CalendarItem must be of type ICalendarItemViewModel", nameof(calendarItem));
- public void Clear()
- {
- _internalAllDayEvents.Clear();
- _internalRegularEvents.Clear();
- _allItems.Clear();
+ collection.Remove(calendarItem);
- CalendarItemsCleared?.Invoke(this, EventArgs.Empty);
+ if (destroy)
+ {
+ _allItems.Remove(calendarItem);
+ }
+
+ CalendarItemRemoved?.Invoke(this, calendarItem);
+ }
+
+ public void Clear()
+ {
+ _internalAllDayEvents.Clear();
+ _internalRegularEvents.Clear();
+ _allItems.Clear();
+
+ CalendarItemsCleared?.Invoke(this, EventArgs.Empty);
+ }
}
}
diff --git a/Wino.Core.Domain/Collections/DayRangeCollection.cs b/Wino.Core.Domain/Collections/DayRangeCollection.cs
index 89afeb68..ec8dd5db 100644
--- a/Wino.Core.Domain/Collections/DayRangeCollection.cs
+++ b/Wino.Core.Domain/Collections/DayRangeCollection.cs
@@ -2,40 +2,41 @@
using Wino.Core.Domain.Interfaces;
using Wino.Core.Domain.Models.Calendar;
-namespace Wino.Core.Domain.Collections;
-
-public class DayRangeCollection : ObservableRangeCollection
+namespace Wino.Core.Domain.Collections
{
- ///
- /// Gets the range of dates that are currently displayed in the collection.
- ///
- public DateRange DisplayRange
+ public class DayRangeCollection : ObservableRangeCollection
{
- get
+ ///
+ /// Gets the range of dates that are currently displayed in the collection.
+ ///
+ public DateRange DisplayRange
{
- if (Count == 0) return null;
+ get
+ {
+ if (Count == 0) return null;
- var minimumLoadedDate = this[0].CalendarRenderOptions.DateRange.StartDate;
- var maximumLoadedDate = this[Count - 1].CalendarRenderOptions.DateRange.EndDate;
+ var minimumLoadedDate = this[0].CalendarRenderOptions.DateRange.StartDate;
+ var maximumLoadedDate = this[Count - 1].CalendarRenderOptions.DateRange.EndDate;
- return new DateRange(minimumLoadedDate, maximumLoadedDate);
+ return new DateRange(minimumLoadedDate, maximumLoadedDate);
+ }
}
- }
- public void RemoveCalendarItem(ICalendarItem calendarItem)
- {
- foreach (var dayRange in this)
+ public void RemoveCalendarItem(ICalendarItem calendarItem)
{
+ foreach (var dayRange in this)
+ {
+ }
}
- }
- public void AddCalendarItem(ICalendarItem calendarItem)
- {
- foreach (var dayRange in this)
+ public void AddCalendarItem(ICalendarItem calendarItem)
{
- var calendarDayModel = dayRange.CalendarDays.FirstOrDefault(x => x.Period.HasInside(calendarItem.Period.Start));
- calendarDayModel?.EventsCollection.AddCalendarItem(calendarItem);
+ foreach (var dayRange in this)
+ {
+ var calendarDayModel = dayRange.CalendarDays.FirstOrDefault(x => x.Period.HasInside(calendarItem.Period.Start));
+ calendarDayModel?.EventsCollection.AddCalendarItem(calendarItem);
+ }
}
}
}
diff --git a/Wino.Core.Domain/Collections/ObservableRangeCollection.cs b/Wino.Core.Domain/Collections/ObservableRangeCollection.cs
index e1869554..b3531c95 100644
--- a/Wino.Core.Domain/Collections/ObservableRangeCollection.cs
+++ b/Wino.Core.Domain/Collections/ObservableRangeCollection.cs
@@ -4,170 +4,171 @@ using System.Collections.ObjectModel;
using System.Collections.Specialized;
using System.ComponentModel;
-namespace Wino.Core.Domain.Collections;
-
-///
-/// Represents a dynamic data collection that provides notifications when items get added, removed, or when the whole list is refreshed.
-///
-///
-public class ObservableRangeCollection : ObservableCollection
+namespace Wino.Core.Domain.Collections
{
-
///
- /// Initializes a new instance of the System.Collections.ObjectModel.ObservableCollection(Of T) class.
+ /// Represents a dynamic data collection that provides notifications when items get added, removed, or when the whole list is refreshed.
///
- public ObservableRangeCollection()
- : base()
+ ///
+ public class ObservableRangeCollection : ObservableCollection
{
- }
- ///
- /// Initializes a new instance of the System.Collections.ObjectModel.ObservableCollection(Of T) class that contains elements copied from the specified collection.
- ///
- /// collection: The collection from which the elements are copied.
- /// The collection parameter cannot be null.
- public ObservableRangeCollection(IEnumerable collection)
- : base(collection)
- {
- }
-
- ///
- /// Adds the elements of the specified collection to the end of the ObservableCollection(Of T).
- ///
- public void AddRange(IEnumerable collection, NotifyCollectionChangedAction notificationMode = NotifyCollectionChangedAction.Add)
- {
- if (notificationMode != NotifyCollectionChangedAction.Add && notificationMode != NotifyCollectionChangedAction.Reset)
- throw new ArgumentException("Mode must be either Add or Reset for AddRange.", nameof(notificationMode));
- if (collection == null)
- throw new ArgumentNullException(nameof(collection));
-
- CheckReentrancy();
-
- var startIndex = Count;
-
- var itemsAdded = AddArrangeCore(collection);
-
- if (!itemsAdded)
- return;
-
- if (notificationMode == NotifyCollectionChangedAction.Reset)
+ ///
+ /// Initializes a new instance of the System.Collections.ObjectModel.ObservableCollection(Of T) class.
+ ///
+ public ObservableRangeCollection()
+ : base()
{
- RaiseChangeNotificationEvents(action: NotifyCollectionChangedAction.Reset);
-
- return;
}
- var changedItems = collection is List ? (List)collection : new List(collection);
-
- RaiseChangeNotificationEvents(
- action: NotifyCollectionChangedAction.Add,
- changedItems: changedItems,
- startingIndex: startIndex);
- }
-
- ///
- /// Removes the first occurence of each item in the specified collection from ObservableCollection(Of T). NOTE: with notificationMode = Remove, removed items starting index is not set because items are not guaranteed to be consecutive.
- ///
- public void RemoveRange(IEnumerable collection, NotifyCollectionChangedAction notificationMode = NotifyCollectionChangedAction.Reset)
- {
- if (notificationMode != NotifyCollectionChangedAction.Remove && notificationMode != NotifyCollectionChangedAction.Reset)
- throw new ArgumentException("Mode must be either Remove or Reset for RemoveRange.", nameof(notificationMode));
- if (collection == null)
- throw new ArgumentNullException(nameof(collection));
-
- CheckReentrancy();
-
- if (notificationMode == NotifyCollectionChangedAction.Reset)
+ ///
+ /// Initializes a new instance of the System.Collections.ObjectModel.ObservableCollection(Of T) class that contains elements copied from the specified collection.
+ ///
+ /// collection: The collection from which the elements are copied.
+ /// The collection parameter cannot be null.
+ public ObservableRangeCollection(IEnumerable collection)
+ : base(collection)
{
- var raiseEvents = false;
- foreach (var item in collection)
- {
- Items.Remove(item);
- raiseEvents = true;
- }
+ }
- if (raiseEvents)
+ ///
+ /// Adds the elements of the specified collection to the end of the ObservableCollection(Of T).
+ ///
+ public void AddRange(IEnumerable collection, NotifyCollectionChangedAction notificationMode = NotifyCollectionChangedAction.Add)
+ {
+ if (notificationMode != NotifyCollectionChangedAction.Add && notificationMode != NotifyCollectionChangedAction.Reset)
+ throw new ArgumentException("Mode must be either Add or Reset for AddRange.", nameof(notificationMode));
+ if (collection == null)
+ throw new ArgumentNullException(nameof(collection));
+
+ CheckReentrancy();
+
+ var startIndex = Count;
+
+ var itemsAdded = AddArrangeCore(collection);
+
+ if (!itemsAdded)
+ return;
+
+ if (notificationMode == NotifyCollectionChangedAction.Reset)
+ {
RaiseChangeNotificationEvents(action: NotifyCollectionChangedAction.Reset);
- return;
- }
-
- var changedItems = new List(collection);
- for (var i = 0; i < changedItems.Count; i++)
- {
- if (!Items.Remove(changedItems[i]))
- {
- changedItems.RemoveAt(i); //Can't use a foreach because changedItems is intended to be (carefully) modified
- i--;
+ return;
}
+
+ var changedItems = collection is List ? (List)collection : new List(collection);
+
+ RaiseChangeNotificationEvents(
+ action: NotifyCollectionChangedAction.Add,
+ changedItems: changedItems,
+ startingIndex: startIndex);
}
- if (changedItems.Count == 0)
- return;
-
- RaiseChangeNotificationEvents(
- action: NotifyCollectionChangedAction.Remove,
- changedItems: changedItems);
- }
-
- ///
- /// Clears the current collection and replaces it with the specified item.
- ///
- public void Replace(T item) => ReplaceRange(new T[] { item });
-
- ///
- /// Clears the current collection and replaces it with the specified collection.
- ///
- public void ReplaceRange(IEnumerable collection)
- {
- if (collection == null)
- throw new ArgumentNullException(nameof(collection));
-
- CheckReentrancy();
-
- var previouslyEmpty = Items.Count == 0;
-
- Items.Clear();
-
- AddArrangeCore(collection);
-
- var currentlyEmpty = Items.Count == 0;
-
- if (previouslyEmpty && currentlyEmpty)
- return;
-
- RaiseChangeNotificationEvents(action: NotifyCollectionChangedAction.Reset);
- }
-
- public void InsertRange(IEnumerable items)
- {
- CheckReentrancy();
-
- foreach (var item in items)
- Items.Insert(0, item);
-
- OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));
- }
-
- private bool AddArrangeCore(IEnumerable collection)
- {
- var itemAdded = false;
- foreach (var item in collection)
+ ///
+ /// Removes the first occurence of each item in the specified collection from ObservableCollection(Of T). NOTE: with notificationMode = Remove, removed items starting index is not set because items are not guaranteed to be consecutive.
+ ///
+ public void RemoveRange(IEnumerable collection, NotifyCollectionChangedAction notificationMode = NotifyCollectionChangedAction.Reset)
{
- Items.Add(item);
- itemAdded = true;
+ if (notificationMode != NotifyCollectionChangedAction.Remove && notificationMode != NotifyCollectionChangedAction.Reset)
+ throw new ArgumentException("Mode must be either Remove or Reset for RemoveRange.", nameof(notificationMode));
+ if (collection == null)
+ throw new ArgumentNullException(nameof(collection));
+
+ CheckReentrancy();
+
+ if (notificationMode == NotifyCollectionChangedAction.Reset)
+ {
+ var raiseEvents = false;
+ foreach (var item in collection)
+ {
+ Items.Remove(item);
+ raiseEvents = true;
+ }
+
+ if (raiseEvents)
+ RaiseChangeNotificationEvents(action: NotifyCollectionChangedAction.Reset);
+
+ return;
+ }
+
+ var changedItems = new List(collection);
+ for (var i = 0; i < changedItems.Count; i++)
+ {
+ if (!Items.Remove(changedItems[i]))
+ {
+ changedItems.RemoveAt(i); //Can't use a foreach because changedItems is intended to be (carefully) modified
+ i--;
+ }
+ }
+
+ if (changedItems.Count == 0)
+ return;
+
+ RaiseChangeNotificationEvents(
+ action: NotifyCollectionChangedAction.Remove,
+ changedItems: changedItems);
}
- return itemAdded;
- }
- private void RaiseChangeNotificationEvents(NotifyCollectionChangedAction action, List changedItems = null, int startingIndex = -1)
- {
- OnPropertyChanged(new PropertyChangedEventArgs(nameof(Count)));
- OnPropertyChanged(new PropertyChangedEventArgs("Item[]"));
+ ///
+ /// Clears the current collection and replaces it with the specified item.
+ ///
+ public void Replace(T item) => ReplaceRange(new T[] { item });
- if (changedItems is null)
- OnCollectionChanged(new NotifyCollectionChangedEventArgs(action));
- else
- OnCollectionChanged(new NotifyCollectionChangedEventArgs(action, changedItems: changedItems, startingIndex: startingIndex));
+ ///
+ /// Clears the current collection and replaces it with the specified collection.
+ ///
+ public void ReplaceRange(IEnumerable collection)
+ {
+ if (collection == null)
+ throw new ArgumentNullException(nameof(collection));
+
+ CheckReentrancy();
+
+ var previouslyEmpty = Items.Count == 0;
+
+ Items.Clear();
+
+ AddArrangeCore(collection);
+
+ var currentlyEmpty = Items.Count == 0;
+
+ if (previouslyEmpty && currentlyEmpty)
+ return;
+
+ RaiseChangeNotificationEvents(action: NotifyCollectionChangedAction.Reset);
+ }
+
+ public void InsertRange(IEnumerable items)
+ {
+ CheckReentrancy();
+
+ foreach (var item in items)
+ Items.Insert(0, item);
+
+ OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));
+ }
+
+ private bool AddArrangeCore(IEnumerable collection)
+ {
+ var itemAdded = false;
+ foreach (var item in collection)
+ {
+ Items.Add(item);
+ itemAdded = true;
+ }
+ return itemAdded;
+ }
+
+ private void RaiseChangeNotificationEvents(NotifyCollectionChangedAction action, List changedItems = null, int startingIndex = -1)
+ {
+ OnPropertyChanged(new PropertyChangedEventArgs(nameof(Count)));
+ OnPropertyChanged(new PropertyChangedEventArgs("Item[]"));
+
+ if (changedItems is null)
+ OnCollectionChanged(new NotifyCollectionChangedEventArgs(action));
+ else
+ OnCollectionChanged(new NotifyCollectionChangedEventArgs(action, changedItems: changedItems, startingIndex: startingIndex));
+ }
}
}
diff --git a/Wino.Core.Domain/Constants.cs b/Wino.Core.Domain/Constants.cs
index 0406edcd..f0a3d111 100644
--- a/Wino.Core.Domain/Constants.cs
+++ b/Wino.Core.Domain/Constants.cs
@@ -1,22 +1,23 @@
-namespace Wino.Core.Domain;
-
-public static class Constants
+namespace Wino.Core.Domain
{
- ///
- /// MIME header that exists in all the drafts created from Wino.
- ///
- public const string WinoLocalDraftHeader = "X-Wino-Draft-Id";
- public const string LocalDraftStartPrefix = "localDraft_";
+ public static class Constants
+ {
+ ///
+ /// MIME header that exists in all the drafts created from Wino.
+ ///
+ public const string WinoLocalDraftHeader = "X-Wino-Draft-Id";
+ public const string LocalDraftStartPrefix = "localDraft_";
- public const string CalendarEventRecurrenceRuleSeperator = "___";
+ public const string CalendarEventRecurrenceRuleSeperator = "___";
- public const string ToastMailUniqueIdKey = nameof(ToastMailUniqueIdKey);
- public const string ToastActionKey = nameof(ToastActionKey);
+ public const string ToastMailUniqueIdKey = nameof(ToastMailUniqueIdKey);
+ public const string ToastActionKey = nameof(ToastActionKey);
- public const string ClientLogFile = "Client_.log";
- public const string ServerLogFile = "Server_.log";
- public const string LogArchiveFileName = "WinoLogs.zip";
+ public const string ClientLogFile = "Client_.log";
+ public const string ServerLogFile = "Server_.log";
+ public const string LogArchiveFileName = "WinoLogs.zip";
- public const string WinoMailIdentiifer = nameof(WinoMailIdentiifer);
- public const string WinoCalendarIdentifier = nameof(WinoCalendarIdentifier);
+ public const string WinoMailIdentiifer = nameof(WinoMailIdentiifer);
+ public const string WinoCalendarIdentifier = nameof(WinoCalendarIdentifier);
+ }
}
diff --git a/Wino.Core.Domain/Entities/Calendar/AccountCalendar.cs b/Wino.Core.Domain/Entities/Calendar/AccountCalendar.cs
index 29a200cf..8d7f6218 100644
--- a/Wino.Core.Domain/Entities/Calendar/AccountCalendar.cs
+++ b/Wino.Core.Domain/Entities/Calendar/AccountCalendar.cs
@@ -2,23 +2,24 @@
using SQLite;
using Wino.Core.Domain.Interfaces;
-namespace Wino.Core.Domain.Entities.Calendar;
-
-public class AccountCalendar : IAccountCalendar
+namespace Wino.Core.Domain.Entities.Calendar
{
- [PrimaryKey]
- public Guid Id { get; set; }
- public Guid AccountId { get; set; }
- public string RemoteCalendarId { get; set; }
- public string SynchronizationDeltaToken { get; set; }
- public string Name { get; set; }
- public bool IsPrimary { get; set; }
- public bool IsExtended { get; set; } = true;
+ public class AccountCalendar : IAccountCalendar
+ {
+ [PrimaryKey]
+ public Guid Id { get; set; }
+ public Guid AccountId { get; set; }
+ public string RemoteCalendarId { get; set; }
+ public string SynchronizationDeltaToken { get; set; }
+ public string Name { get; set; }
+ public bool IsPrimary { get; set; }
+ public bool IsExtended { get; set; } = true;
- ///
- /// Unused for now.
- ///
- public string TextColorHex { get; set; }
- public string BackgroundColorHex { get; set; }
- public string TimeZone { get; set; }
+ ///
+ /// Unused for now.
+ ///
+ public string TextColorHex { get; set; }
+ public string BackgroundColorHex { get; set; }
+ public string TimeZone { get; set; }
+ }
}
diff --git a/Wino.Core.Domain/Entities/Calendar/CalendarEventAttendee.cs b/Wino.Core.Domain/Entities/Calendar/CalendarEventAttendee.cs
index e9c47da3..5fd07479 100644
--- a/Wino.Core.Domain/Entities/Calendar/CalendarEventAttendee.cs
+++ b/Wino.Core.Domain/Entities/Calendar/CalendarEventAttendee.cs
@@ -2,18 +2,19 @@
using SQLite;
using Wino.Core.Domain.Enums;
-namespace Wino.Core.Domain.Entities.Calendar;
-
-// TODO: Connect to Contact store with Wino People.
-public class CalendarEventAttendee
+namespace Wino.Core.Domain.Entities.Calendar
{
- [PrimaryKey]
- public Guid Id { get; set; }
- public Guid CalendarItemId { get; set; }
- public string Name { get; set; }
- public string Email { get; set; }
- public AttendeeStatus AttendenceStatus { get; set; }
- public bool IsOrganizer { get; set; }
- public bool IsOptionalAttendee { get; set; }
- public string Comment { get; set; }
+ // TODO: Connect to Contact store with Wino People.
+ public class CalendarEventAttendee
+ {
+ [PrimaryKey]
+ public Guid Id { get; set; }
+ public Guid CalendarItemId { get; set; }
+ public string Name { get; set; }
+ public string Email { get; set; }
+ public AttendeeStatus AttendenceStatus { get; set; }
+ public bool IsOrganizer { get; set; }
+ public bool IsOptionalAttendee { get; set; }
+ public string Comment { get; set; }
+ }
}
diff --git a/Wino.Core.Domain/Entities/Calendar/CalendarItem.cs b/Wino.Core.Domain/Entities/Calendar/CalendarItem.cs
index de03e74e..022296f8 100644
--- a/Wino.Core.Domain/Entities/Calendar/CalendarItem.cs
+++ b/Wino.Core.Domain/Entities/Calendar/CalendarItem.cs
@@ -5,175 +5,176 @@ using SQLite;
using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Interfaces;
-namespace Wino.Core.Domain.Entities.Calendar;
-
-[DebuggerDisplay("{Title} ({StartDate} - {EndDate})")]
-public class CalendarItem : ICalendarItem
+namespace Wino.Core.Domain.Entities.Calendar
{
- [PrimaryKey]
- public Guid Id { get; set; }
- public string RemoteEventId { get; set; }
- public string Title { get; set; }
- public string Description { get; set; }
- public string Location { get; set; }
-
- public DateTime StartDate { get; set; }
-
- public DateTime EndDate
+ [DebuggerDisplay("{Title} ({StartDate} - {EndDate})")]
+ public class CalendarItem : ICalendarItem
{
- get
+ [PrimaryKey]
+ public Guid Id { get; set; }
+ public string RemoteEventId { get; set; }
+ public string Title { get; set; }
+ public string Description { get; set; }
+ public string Location { get; set; }
+
+ public DateTime StartDate { get; set; }
+
+ public DateTime EndDate
{
- return StartDate.AddSeconds(DurationInSeconds);
+ get
+ {
+ return StartDate.AddSeconds(DurationInSeconds);
+ }
}
- }
- public TimeSpan StartDateOffset { get; set; }
- public TimeSpan EndDateOffset { get; set; }
+ public TimeSpan StartDateOffset { get; set; }
+ public TimeSpan EndDateOffset { get; set; }
- private ITimePeriod _period;
- public ITimePeriod Period
- {
- get
+ private ITimePeriod _period;
+ public ITimePeriod Period
{
- _period ??= new TimeRange(StartDate, EndDate);
+ get
+ {
+ _period ??= new TimeRange(StartDate, EndDate);
- return _period;
+ return _period;
+ }
}
- }
- ///
- /// Events that starts at midnight and ends at midnight are considered all-day events.
- ///
- public bool IsAllDayEvent
- {
- get
+ ///
+ /// Events that starts at midnight and ends at midnight are considered all-day events.
+ ///
+ public bool IsAllDayEvent
{
- return
- StartDate.TimeOfDay == TimeSpan.Zero &&
- EndDate.TimeOfDay == TimeSpan.Zero;
+ get
+ {
+ return
+ StartDate.TimeOfDay == TimeSpan.Zero &&
+ EndDate.TimeOfDay == TimeSpan.Zero;
+ }
}
- }
- ///
- /// Events that are either an exceptional instance of a recurring event or occurrences.
- /// IsOccurrence is used to display occurrence instances of parent recurring events.
- /// IsOccurrence == false && IsRecurringChild == true => exceptional single instance.
- ///
- public bool IsRecurringChild
- {
- get
+ ///
+ /// Events that are either an exceptional instance of a recurring event or occurrences.
+ /// IsOccurrence is used to display occurrence instances of parent recurring events.
+ /// IsOccurrence == false && IsRecurringChild == true => exceptional single instance.
+ ///
+ public bool IsRecurringChild
{
- return RecurringCalendarItemId != null;
+ get
+ {
+ return RecurringCalendarItemId != null;
+ }
}
- }
- ///
- /// Events that are either an exceptional instance of a recurring event or occurrences.
- ///
- public bool IsRecurringEvent => IsRecurringChild || IsRecurringParent;
+ ///
+ /// Events that are either an exceptional instance of a recurring event or occurrences.
+ ///
+ public bool IsRecurringEvent => IsRecurringChild || IsRecurringParent;
- ///
- /// Events that are the master event definition of recurrence events.
- ///
- public bool IsRecurringParent
- {
- get
+ ///
+ /// Events that are the master event definition of recurrence events.
+ ///
+ public bool IsRecurringParent
{
- return !string.IsNullOrEmpty(Recurrence) && RecurringCalendarItemId == null;
+ get
+ {
+ return !string.IsNullOrEmpty(Recurrence) && RecurringCalendarItemId == null;
+ }
}
- }
- ///
- /// Events that are not all-day events and last more than one day are considered multi-day events.
- ///
- public bool IsMultiDayEvent
- {
- get
+ ///
+ /// Events that are not all-day events and last more than one day are considered multi-day events.
+ ///
+ public bool IsMultiDayEvent
{
- return Period.Duration.TotalDays >= 1 && !IsAllDayEvent;
+ get
+ {
+ return Period.Duration.TotalDays >= 1 && !IsAllDayEvent;
+ }
}
- }
- public double DurationInSeconds { get; set; }
- public string Recurrence { get; set; }
+ public double DurationInSeconds { get; set; }
+ public string Recurrence { get; set; }
- public string OrganizerDisplayName { get; set; }
- public string OrganizerEmail { get; set; }
+ public string OrganizerDisplayName { get; set; }
+ public string OrganizerEmail { get; set; }
- ///
- /// The id of the parent calendar item of the recurring event.
- /// Exceptional instances are stored as a separate calendar item.
- /// This makes the calendar item a child of the recurring event.
- ///
- public Guid? RecurringCalendarItemId { get; set; }
+ ///
+ /// The id of the parent calendar item of the recurring event.
+ /// Exceptional instances are stored as a separate calendar item.
+ /// This makes the calendar item a child of the recurring event.
+ ///
+ public Guid? RecurringCalendarItemId { get; set; }
- ///
- /// Indicates read-only events. Default is false.
- ///
- public bool IsLocked { get; set; }
+ ///
+ /// Indicates read-only events. Default is false.
+ ///
+ public bool IsLocked { get; set; }
- ///
- /// Hidden events must not be displayed to the user.
- /// This usually happens when a child instance of recurring parent is cancelled after creation.
- ///
- public bool IsHidden { get; set; }
+ ///
+ /// Hidden events must not be displayed to the user.
+ /// This usually happens when a child instance of recurring parent is cancelled after creation.
+ ///
+ public bool IsHidden { get; set; }
- // TODO
- public string CustomEventColorHex { get; set; }
- public string HtmlLink { get; set; }
- public CalendarItemStatus Status { get; set; }
- public CalendarItemVisibility Visibility { get; set; }
- public DateTimeOffset CreatedAt { get; set; }
- public DateTimeOffset UpdatedAt { get; set; }
- public Guid CalendarId { get; set; }
+ // TODO
+ public string CustomEventColorHex { get; set; }
+ public string HtmlLink { get; set; }
+ public CalendarItemStatus Status { get; set; }
+ public CalendarItemVisibility Visibility { get; set; }
+ public DateTimeOffset CreatedAt { get; set; }
+ public DateTimeOffset UpdatedAt { get; set; }
+ public Guid CalendarId { get; set; }
- [Ignore]
- public IAccountCalendar AssignedCalendar { get; set; }
+ [Ignore]
+ public IAccountCalendar AssignedCalendar { get; set; }
- ///
- /// Whether this item does not really exist in the database or not.
- /// These are used to display occurrence instances of parent recurring events.
- ///
- [Ignore]
- public bool IsOccurrence { get; set; }
+ ///
+ /// Whether this item does not really exist in the database or not.
+ /// These are used to display occurrence instances of parent recurring events.
+ ///
+ [Ignore]
+ public bool IsOccurrence { get; set; }
- ///
- /// Id to load information related to this event.
- /// Occurrences tracked by the parent recurring event if they are not exceptional instances.
- /// Recurring children here are exceptional instances. They have their own info in the database including Id.
- ///
- public Guid EventTrackingId => IsOccurrence ? RecurringCalendarItemId.Value : Id;
+ ///
+ /// Id to load information related to this event.
+ /// Occurrences tracked by the parent recurring event if they are not exceptional instances.
+ /// Recurring children here are exceptional instances. They have their own info in the database including Id.
+ ///
+ public Guid EventTrackingId => IsOccurrence ? RecurringCalendarItemId.Value : Id;
- public CalendarItem CreateRecurrence(DateTime startDate, double durationInSeconds)
- {
- // Create a copy with the new start date and duration
-
- return new CalendarItem
+ public CalendarItem CreateRecurrence(DateTime startDate, double durationInSeconds)
{
- Id = Guid.NewGuid(),
- Title = Title,
- Description = Description,
- Location = Location,
- StartDate = startDate,
- DurationInSeconds = durationInSeconds,
- Recurrence = Recurrence,
- OrganizerDisplayName = OrganizerDisplayName,
- OrganizerEmail = OrganizerEmail,
- RecurringCalendarItemId = Id,
- AssignedCalendar = AssignedCalendar,
- CalendarId = CalendarId,
- CreatedAt = CreatedAt,
- UpdatedAt = UpdatedAt,
- Visibility = Visibility,
- Status = Status,
- CustomEventColorHex = CustomEventColorHex,
- HtmlLink = HtmlLink,
- StartDateOffset = StartDateOffset,
- EndDateOffset = EndDateOffset,
- RemoteEventId = RemoteEventId,
- IsHidden = IsHidden,
- IsLocked = IsLocked,
- IsOccurrence = true
- };
+ // Create a copy with the new start date and duration
+
+ return new CalendarItem
+ {
+ Id = Guid.NewGuid(),
+ Title = Title,
+ Description = Description,
+ Location = Location,
+ StartDate = startDate,
+ DurationInSeconds = durationInSeconds,
+ Recurrence = Recurrence,
+ OrganizerDisplayName = OrganizerDisplayName,
+ OrganizerEmail = OrganizerEmail,
+ RecurringCalendarItemId = Id,
+ AssignedCalendar = AssignedCalendar,
+ CalendarId = CalendarId,
+ CreatedAt = CreatedAt,
+ UpdatedAt = UpdatedAt,
+ Visibility = Visibility,
+ Status = Status,
+ CustomEventColorHex = CustomEventColorHex,
+ HtmlLink = HtmlLink,
+ StartDateOffset = StartDateOffset,
+ EndDateOffset = EndDateOffset,
+ RemoteEventId = RemoteEventId,
+ IsHidden = IsHidden,
+ IsLocked = IsLocked,
+ IsOccurrence = true
+ };
+ }
}
}
diff --git a/Wino.Core.Domain/Entities/Calendar/Reminder.cs b/Wino.Core.Domain/Entities/Calendar/Reminder.cs
index 3dc64b81..64c3b65c 100644
--- a/Wino.Core.Domain/Entities/Calendar/Reminder.cs
+++ b/Wino.Core.Domain/Entities/Calendar/Reminder.cs
@@ -2,14 +2,15 @@
using SQLite;
using Wino.Core.Domain.Enums;
-namespace Wino.Core.Domain.Entities.Calendar;
-
-public class Reminder
+namespace Wino.Core.Domain.Entities.Calendar
{
- [PrimaryKey]
- public Guid Id { get; set; }
- public Guid CalendarItemId { get; set; }
+ public class Reminder
+ {
+ [PrimaryKey]
+ public Guid Id { get; set; }
+ public Guid CalendarItemId { get; set; }
- public DateTimeOffset ReminderTime { get; set; }
- public CalendarItemReminderType ReminderType { get; set; }
+ public DateTimeOffset ReminderTime { get; set; }
+ public CalendarItemReminderType ReminderType { get; set; }
+ }
}
diff --git a/Wino.Core.Domain/Entities/Mail/AccountSignature.cs b/Wino.Core.Domain/Entities/Mail/AccountSignature.cs
index fb1066b6..fa867d7e 100644
--- a/Wino.Core.Domain/Entities/Mail/AccountSignature.cs
+++ b/Wino.Core.Domain/Entities/Mail/AccountSignature.cs
@@ -1,16 +1,17 @@
using System;
using SQLite;
-namespace Wino.Core.Domain.Entities.Mail;
-
-public class AccountSignature
+namespace Wino.Core.Domain.Entities.Mail
{
- [PrimaryKey]
- public Guid Id { get; set; }
+ public class AccountSignature
+ {
+ [PrimaryKey]
+ public Guid Id { get; set; }
- public string Name { get; set; }
+ public string Name { get; set; }
- public string HtmlBody { get; set; }
+ public string HtmlBody { get; set; }
- public Guid MailAccountId { get; set; }
+ public Guid MailAccountId { get; set; }
+ }
}
diff --git a/Wino.Core.Domain/Entities/Mail/MailAccountAlias.cs b/Wino.Core.Domain/Entities/Mail/MailAccountAlias.cs
index f13dd5ef..0860ecf6 100644
--- a/Wino.Core.Domain/Entities/Mail/MailAccountAlias.cs
+++ b/Wino.Core.Domain/Entities/Mail/MailAccountAlias.cs
@@ -1,62 +1,63 @@
using System;
using SQLite;
-namespace Wino.Core.Domain.Entities.Mail;
-
-public class RemoteAccountAlias
+namespace Wino.Core.Domain.Entities.Mail
{
- ///
- /// Display address of the alias.
- ///
- public string AliasAddress { get; set; }
+ public class RemoteAccountAlias
+ {
+ ///
+ /// Display address of the alias.
+ ///
+ public string AliasAddress { get; set; }
- ///
- /// Address to be included in Reply-To header when alias is used for sending messages.
- ///
- public string ReplyToAddress { get; set; }
+ ///
+ /// Address to be included in Reply-To header when alias is used for sending messages.
+ ///
+ public string ReplyToAddress { get; set; }
- ///
- /// Whether this alias is the primary alias for the account.
- ///
- public bool IsPrimary { get; set; }
+ ///
+ /// Whether this alias is the primary alias for the account.
+ ///
+ public bool IsPrimary { get; set; }
- ///
- /// Whether the alias is verified by the server.
- /// Only Gmail aliases are verified for now.
- /// Non-verified alias messages might be rejected by SMTP server.
- ///
- public bool IsVerified { get; set; }
+ ///
+ /// Whether the alias is verified by the server.
+ /// Only Gmail aliases are verified for now.
+ /// Non-verified alias messages might be rejected by SMTP server.
+ ///
+ public bool IsVerified { get; set; }
- ///
- /// Whether this alias is the root alias for the account.
- /// Root alias means the first alias that was created for the account.
- /// It can't be deleted or changed.
- ///
- public bool IsRootAlias { get; set; }
+ ///
+ /// Whether this alias is the root alias for the account.
+ /// Root alias means the first alias that was created for the account.
+ /// It can't be deleted or changed.
+ ///
+ public bool IsRootAlias { get; set; }
- ///
- /// Optional sender name for the alias.
- /// Falls back to account's sender name if not set when preparing messages.
- /// Used for Gmail only.
- ///
- public string AliasSenderName { get; set; }
-}
-
-public class MailAccountAlias : RemoteAccountAlias
-{
- ///
- /// Unique Id for the alias.
- ///
- [PrimaryKey]
- public Guid Id { get; set; }
-
- ///
- /// Account id that this alias is attached to.
- ///
- public Guid AccountId { get; set; }
-
- ///
- /// Root aliases can't be deleted.
- ///
- public bool CanDelete => !IsRootAlias;
+ ///
+ /// Optional sender name for the alias.
+ /// Falls back to account's sender name if not set when preparing messages.
+ /// Used for Gmail only.
+ ///
+ public string AliasSenderName { get; set; }
+ }
+
+ public class MailAccountAlias : RemoteAccountAlias
+ {
+ ///
+ /// Unique Id for the alias.
+ ///
+ [PrimaryKey]
+ public Guid Id { get; set; }
+
+ ///
+ /// Account id that this alias is attached to.
+ ///
+ public Guid AccountId { get; set; }
+
+ ///
+ /// Root aliases can't be deleted.
+ ///
+ public bool CanDelete => !IsRootAlias;
+ }
}
diff --git a/Wino.Core.Domain/Entities/Mail/MailCopy.cs b/Wino.Core.Domain/Entities/Mail/MailCopy.cs
index b3c1049d..b0b9d208 100644
--- a/Wino.Core.Domain/Entities/Mail/MailCopy.cs
+++ b/Wino.Core.Domain/Entities/Mail/MailCopy.cs
@@ -5,152 +5,153 @@ using Wino.Core.Domain.Entities.Shared;
using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Models.MailItem;
-namespace Wino.Core.Domain.Entities.Mail;
-
-///
-/// Summary of the parsed MIME messages.
-/// Wino will do non-network operations on this table and others from the original MIME.
-///
-public class MailCopy : IMailItem
+namespace Wino.Core.Domain.Entities.Mail
{
///
- /// Unique Id of the mail.
+ /// Summary of the parsed MIME messages.
+ /// Wino will do non-network operations on this table and others from the original MIME.
///
- [PrimaryKey]
- public Guid UniqueId { get; set; }
+ public class MailCopy : IMailItem
+ {
+ ///
+ /// Unique Id of the mail.
+ ///
+ [PrimaryKey]
+ public Guid UniqueId { get; set; }
- ///
- /// Not unique id of the item. Some operations held on this Id, some on the UniqueId.
- /// Same message can be in different folder. In that case UniqueId is used.
- ///
- public string Id { get; set; }
+ ///
+ /// Not unique id of the item. Some operations held on this Id, some on the UniqueId.
+ /// Same message can be in different folder. In that case UniqueId is used.
+ ///
+ public string Id { get; set; }
- ///
- /// Folder that this mail belongs to.
- ///
- public Guid FolderId { get; set; }
+ ///
+ /// Folder that this mail belongs to.
+ ///
+ public Guid FolderId { get; set; }
- ///
- /// Conversation id for the mail.
- ///
- public string ThreadId { get; set; }
+ ///
+ /// Conversation id for the mail.
+ ///
+ public string ThreadId { get; set; }
- ///
- /// MIME MessageId if exists.
- ///
- public string MessageId { get; set; }
+ ///
+ /// MIME MessageId if exists.
+ ///
+ public string MessageId { get; set; }
- ///
- /// References header from MIME
- ///
- public string References { get; set; }
+ ///
+ /// References header from MIME
+ ///
+ public string References { get; set; }
- ///
- /// In-Reply-To header from MIME
- ///
- public string InReplyTo { get; set; }
+ ///
+ /// In-Reply-To header from MIME
+ ///
+ public string InReplyTo { get; set; }
- ///
- /// Name for the sender.
- ///
- public string FromName { get; set; }
+ ///
+ /// Name for the sender.
+ ///
+ public string FromName { get; set; }
- ///
- /// Address of the sender.
- ///
- public string FromAddress { get; set; }
+ ///
+ /// Address of the sender.
+ ///
+ public string FromAddress { get; set; }
- ///
- /// Subject of the mail.
- ///
- public string Subject { get; set; }
+ ///
+ /// Subject of the mail.
+ ///
+ public string Subject { get; set; }
- ///
- /// Short preview of the content.
- ///
- public string PreviewText { get; set; }
+ ///
+ /// Short preview of the content.
+ ///
+ public string PreviewText { get; set; }
- ///
- /// Date that represents this mail has been created in provider servers.
- /// Stored always in UTC.
- ///
- public DateTime CreationDate { get; set; }
+ ///
+ /// Date that represents this mail has been created in provider servers.
+ /// Stored always in UTC.
+ ///
+ public DateTime CreationDate { get; set; }
- ///
- /// Importance of the mail.
- ///
- public MailImportance Importance { get; set; }
+ ///
+ /// Importance of the mail.
+ ///
+ public MailImportance Importance { get; set; }
- ///
- /// Read status for the mail.
- ///
- public bool IsRead { get; set; }
+ ///
+ /// Read status for the mail.
+ ///
+ public bool IsRead { get; set; }
- ///
- /// Flag status.
- /// Flagged for Outlook.
- /// Important for Gmail.
- ///
- public bool IsFlagged { get; set; }
+ ///
+ /// Flag status.
+ /// Flagged for Outlook.
+ /// Important for Gmail.
+ ///
+ public bool IsFlagged { get; set; }
- ///
- /// To support Outlook.
- /// Gmail doesn't use it.
- ///
- public bool IsFocused { get; set; }
+ ///
+ /// To support Outlook.
+ /// Gmail doesn't use it.
+ ///
+ public bool IsFocused { get; set; }
- ///
- /// Whether mail has attachments included or not.
- ///
- public bool HasAttachments { get; set; }
+ ///
+ /// Whether mail has attachments included or not.
+ ///
+ public bool HasAttachments { get; set; }
- ///
- /// Assigned draft id.
- ///
- public string DraftId { get; set; }
+ ///
+ /// Assigned draft id.
+ ///
+ public string DraftId { get; set; }
- ///
- /// Whether this mail is only created locally.
- ///
- [Ignore]
- public bool IsLocalDraft => !string.IsNullOrEmpty(DraftId) && DraftId.StartsWith(Constants.LocalDraftStartPrefix);
+ ///
+ /// Whether this mail is only created locally.
+ ///
+ [Ignore]
+ public bool IsLocalDraft => !string.IsNullOrEmpty(DraftId) && DraftId.StartsWith(Constants.LocalDraftStartPrefix);
- ///
- /// Whether this copy is draft or not.
- ///
- public bool IsDraft { get; set; }
+ ///
+ /// Whether this copy is draft or not.
+ ///
+ public bool IsDraft { get; set; }
- ///
- /// File id that this mail is assigned to.
- /// This Id is immutable. It's used to find the file in the file system.
- /// Even after mapping local draft to remote draft, it will not change.
- ///
- public Guid FileId { get; set; }
+ ///
+ /// File id that this mail is assigned to.
+ /// This Id is immutable. It's used to find the file in the file system.
+ /// Even after mapping local draft to remote draft, it will not change.
+ ///
+ public Guid FileId { get; set; }
- ///
- /// Folder that this mail is assigned to.
- /// Warning: This field is not populated by queries.
- /// Services or View Models are responsible for populating this field.
- ///
- [Ignore]
- public MailItemFolder AssignedFolder { get; set; }
+ ///
+ /// Folder that this mail is assigned to.
+ /// Warning: This field is not populated by queries.
+ /// Services or View Models are responsible for populating this field.
+ ///
+ [Ignore]
+ public MailItemFolder AssignedFolder { get; set; }
- ///
- /// Account that this mail is assigned to.
- /// Warning: This field is not populated by queries.
- /// Services or View Models are responsible for populating this field.
- ///
- [Ignore]
- public MailAccount AssignedAccount { get; set; }
+ ///
+ /// Account that this mail is assigned to.
+ /// Warning: This field is not populated by queries.
+ /// Services or View Models are responsible for populating this field.
+ ///
+ [Ignore]
+ public MailAccount AssignedAccount { get; set; }
- ///
- /// Contact information of the sender if exists.
- /// Warning: This field is not populated by queries.
- /// Services or View Models are responsible for populating this field.
- ///
- [Ignore]
- public AccountContact SenderContact { get; set; }
+ ///
+ /// Contact information of the sender if exists.
+ /// Warning: This field is not populated by queries.
+ /// Services or View Models are responsible for populating this field.
+ ///
+ [Ignore]
+ public AccountContact SenderContact { get; set; }
- public IEnumerable GetContainingIds() => [UniqueId];
- public override string ToString() => $"{Subject} <-> {Id}";
+ public IEnumerable GetContainingIds() => [UniqueId];
+ public override string ToString() => $"{Subject} <-> {Id}";
+ }
}
diff --git a/Wino.Core.Domain/Entities/Mail/MailItemFolder.cs b/Wino.Core.Domain/Entities/Mail/MailItemFolder.cs
index bb1a2cae..62e13796 100644
--- a/Wino.Core.Domain/Entities/Mail/MailItemFolder.cs
+++ b/Wino.Core.Domain/Entities/Mail/MailItemFolder.cs
@@ -5,70 +5,71 @@ using SQLite;
using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Models.Folders;
-namespace Wino.Core.Domain.Entities.Mail;
-
-[DebuggerDisplay("{FolderName} - {SpecialFolderType}")]
-public class MailItemFolder : IMailItemFolder
+namespace Wino.Core.Domain.Entities.Mail
{
- [PrimaryKey]
- public Guid Id { get; set; }
-
- public string RemoteFolderId { get; set; }
- public string ParentRemoteFolderId { get; set; }
-
- public Guid MailAccountId { get; set; }
- public string FolderName { get; set; }
- public SpecialFolderType SpecialFolderType { get; set; }
- public bool IsSystemFolder { get; set; }
- public bool IsSticky { get; set; }
- public bool IsSynchronizationEnabled { get; set; }
- public bool IsHidden { get; set; }
- public bool ShowUnreadCount { get; set; }
- public DateTime? LastSynchronizedDate { get; set; }
-
- // For IMAP
- public uint UidValidity { get; set; }
- public long HighestModeSeq { get; set; }
-
- ///
- /// Outlook shares delta changes per-folder. Gmail is for per-account.
- /// This is only used for Outlook provider.
- ///
- public string DeltaToken { get; set; }
-
- // For GMail Labels
- public string TextColorHex { get; set; }
- public string BackgroundColorHex { get; set; }
-
- [Ignore]
- public List ChildFolders { get; set; } = [];
-
- // Category and Move type folders are not valid move targets.
- // These folders are virtual. They don't exist on the server.
- public bool IsMoveTarget => !(SpecialFolderType == SpecialFolderType.More || SpecialFolderType == SpecialFolderType.Category);
-
- public bool ContainsSpecialFolderType(SpecialFolderType type)
+ [DebuggerDisplay("{FolderName} - {SpecialFolderType}")]
+ public class MailItemFolder : IMailItemFolder
{
- if (SpecialFolderType == type)
- return true;
+ [PrimaryKey]
+ public Guid Id { get; set; }
- foreach (var child in ChildFolders)
+ public string RemoteFolderId { get; set; }
+ public string ParentRemoteFolderId { get; set; }
+
+ public Guid MailAccountId { get; set; }
+ public string FolderName { get; set; }
+ public SpecialFolderType SpecialFolderType { get; set; }
+ public bool IsSystemFolder { get; set; }
+ public bool IsSticky { get; set; }
+ public bool IsSynchronizationEnabled { get; set; }
+ public bool IsHidden { get; set; }
+ public bool ShowUnreadCount { get; set; }
+ public DateTime? LastSynchronizedDate { get; set; }
+
+ // For IMAP
+ public uint UidValidity { get; set; }
+ public long HighestModeSeq { get; set; }
+
+ ///
+ /// Outlook shares delta changes per-folder. Gmail is for per-account.
+ /// This is only used for Outlook provider.
+ ///
+ public string DeltaToken { get; set; }
+
+ // For GMail Labels
+ public string TextColorHex { get; set; }
+ public string BackgroundColorHex { get; set; }
+
+ [Ignore]
+ public List ChildFolders { get; set; } = [];
+
+ // Category and Move type folders are not valid move targets.
+ // These folders are virtual. They don't exist on the server.
+ public bool IsMoveTarget => !(SpecialFolderType == SpecialFolderType.More || SpecialFolderType == SpecialFolderType.Category);
+
+ public bool ContainsSpecialFolderType(SpecialFolderType type)
{
- if (child.SpecialFolderType == type)
- {
+ if (SpecialFolderType == type)
return true;
- }
- else
+
+ foreach (var child in ChildFolders)
{
- return child.ContainsSpecialFolderType(type);
+ if (child.SpecialFolderType == type)
+ {
+ return true;
+ }
+ else
+ {
+ return child.ContainsSpecialFolderType(type);
+ }
}
+
+ return false;
}
- return false;
+ public static MailItemFolder CreateMoreFolder() => new MailItemFolder() { IsSticky = true, SpecialFolderType = SpecialFolderType.More, FolderName = Translator.MoreFolderNameOverride };
+ public static MailItemFolder CreateCategoriesFolder() => new MailItemFolder() { IsSticky = true, SpecialFolderType = SpecialFolderType.Category, FolderName = Translator.CategoriesFolderNameOverride };
+
+ public override string ToString() => FolderName;
}
-
- public static MailItemFolder CreateMoreFolder() => new MailItemFolder() { IsSticky = true, SpecialFolderType = SpecialFolderType.More, FolderName = Translator.MoreFolderNameOverride };
- public static MailItemFolder CreateCategoriesFolder() => new MailItemFolder() { IsSticky = true, SpecialFolderType = SpecialFolderType.Category, FolderName = Translator.CategoriesFolderNameOverride };
-
- public override string ToString() => FolderName;
}
diff --git a/Wino.Core.Domain/Entities/Mail/MergedInbox.cs b/Wino.Core.Domain/Entities/Mail/MergedInbox.cs
index 446a6b55..f0811c96 100644
--- a/Wino.Core.Domain/Entities/Mail/MergedInbox.cs
+++ b/Wino.Core.Domain/Entities/Mail/MergedInbox.cs
@@ -1,12 +1,13 @@
using System;
using SQLite;
-namespace Wino.Core.Domain.Entities.Mail;
-
-public class MergedInbox
+namespace Wino.Core.Domain.Entities.Mail
{
- [PrimaryKey]
- public Guid Id { get; set; }
+ public class MergedInbox
+ {
+ [PrimaryKey]
+ public Guid Id { get; set; }
- public string Name { get; set; }
+ public string Name { get; set; }
+ }
}
diff --git a/Wino.Core.Domain/Entities/Shared/AccountContact.cs b/Wino.Core.Domain/Entities/Shared/AccountContact.cs
index 9b2eae37..6679ca2f 100644
--- a/Wino.Core.Domain/Entities/Shared/AccountContact.cs
+++ b/Wino.Core.Domain/Entities/Shared/AccountContact.cs
@@ -2,75 +2,76 @@
using System.Collections.Generic;
using SQLite;
-namespace Wino.Core.Domain.Entities.Shared;
-
-///
-/// Back storage for simple name-address book.
-/// These values will be inserted during MIME fetch.
-///
-
-// TODO: This can easily evolve to Contact store, just like People app in Windows 10/11.
-// Do it.
-public class AccountContact : IEquatable
+namespace Wino.Core.Domain.Entities.Shared
{
///
- /// E-mail address of the contact.
+ /// Back storage for simple name-address book.
+ /// These values will be inserted during MIME fetch.
///
- [PrimaryKey]
- public string Address { get; set; }
- ///
- /// Display name of the contact.
- ///
- public string Name { get; set; }
-
- ///
- /// Base64 encoded profile image of the contact.
- ///
- public string Base64ContactPicture { get; set; }
-
- ///
- /// All registered accounts have their contacts registered as root.
- /// Root contacts must not be overridden by any configuration.
- /// They are created on account creation.
- ///
- public bool IsRootContact { get; set; }
-
- ///
- /// Short display name of the contact.
- /// Eather Name or Address.
- ///
- public string ShortDisplayName => Address == Name || string.IsNullOrWhiteSpace(Name) ? $"{Address.ToLowerInvariant()};" : $"{Name};";
-
- public string DisplayName => Address == Name || string.IsNullOrWhiteSpace(Name) ? Address.ToLowerInvariant() : $"{Name} <{Address.ToLowerInvariant()}>";
-
- public override bool Equals(object obj)
+ // TODO: This can easily evolve to Contact store, just like People app in Windows 10/11.
+ // Do it.
+ public class AccountContact : IEquatable
{
- return Equals(obj as AccountContact);
- }
+ ///
+ /// E-mail address of the contact.
+ ///
+ [PrimaryKey]
+ public string Address { get; set; }
- public bool Equals(AccountContact other)
- {
- return other is not null &&
- Address == other.Address &&
- Name == other.Name;
- }
+ ///
+ /// Display name of the contact.
+ ///
+ public string Name { get; set; }
- public override int GetHashCode()
- {
- int hashCode = -1717786383;
- hashCode = hashCode * -1521134295 + EqualityComparer.Default.GetHashCode(Address);
- hashCode = hashCode * -1521134295 + EqualityComparer.Default.GetHashCode(Name);
- return hashCode;
- }
+ ///
+ /// Base64 encoded profile image of the contact.
+ ///
+ public string Base64ContactPicture { get; set; }
- public static bool operator ==(AccountContact left, AccountContact right)
- {
- return EqualityComparer.Default.Equals(left, right);
- }
+ ///
+ /// All registered accounts have their contacts registered as root.
+ /// Root contacts must not be overridden by any configuration.
+ /// They are created on account creation.
+ ///
+ public bool IsRootContact { get; set; }
- public static bool operator !=(AccountContact left, AccountContact right)
- {
- return !(left == right);
+ ///
+ /// Short display name of the contact.
+ /// Eather Name or Address.
+ ///
+ public string ShortDisplayName => Address == Name || string.IsNullOrWhiteSpace(Name) ? $"{Address.ToLowerInvariant()};" : $"{Name};";
+
+ public string DisplayName => Address == Name || string.IsNullOrWhiteSpace(Name) ? Address.ToLowerInvariant() : $"{Name} <{Address.ToLowerInvariant()}>";
+
+ public override bool Equals(object obj)
+ {
+ return Equals(obj as AccountContact);
+ }
+
+ public bool Equals(AccountContact other)
+ {
+ return other is not null &&
+ Address == other.Address &&
+ Name == other.Name;
+ }
+
+ public override int GetHashCode()
+ {
+ int hashCode = -1717786383;
+ hashCode = hashCode * -1521134295 + EqualityComparer.Default.GetHashCode(Address);
+ hashCode = hashCode * -1521134295 + EqualityComparer.Default.GetHashCode(Name);
+ return hashCode;
+ }
+
+ public static bool operator ==(AccountContact left, AccountContact right)
+ {
+ return EqualityComparer.Default.Equals(left, right);
+ }
+
+ public static bool operator !=(AccountContact left, AccountContact right)
+ {
+ return !(left == right);
+ }
}
}
diff --git a/Wino.Core.Domain/Entities/Shared/CustomServerInformation.cs b/Wino.Core.Domain/Entities/Shared/CustomServerInformation.cs
index 164027c7..630a79c7 100644
--- a/Wino.Core.Domain/Entities/Shared/CustomServerInformation.cs
+++ b/Wino.Core.Domain/Entities/Shared/CustomServerInformation.cs
@@ -2,51 +2,52 @@
using SQLite;
using Wino.Core.Domain.Enums;
-namespace Wino.Core.Domain.Entities.Shared;
-
-public class CustomServerInformation
+namespace Wino.Core.Domain.Entities.Shared
{
- [PrimaryKey]
- public Guid Id { get; set; }
+ public class CustomServerInformation
+ {
+ [PrimaryKey]
+ public Guid Id { get; set; }
- public Guid AccountId { get; set; }
+ public Guid AccountId { get; set; }
- ///
- /// This field is ignored. DisplayName is stored in MailAccount as SenderName from now.
- ///
- [Ignore]
- public string DisplayName { get; set; }
- public string Address { get; set; }
- public string IncomingServer { get; set; }
- public string IncomingServerUsername { get; set; }
- public string IncomingServerPassword { get; set; }
- public string IncomingServerPort { get; set; }
+ ///
+ /// This field is ignored. DisplayName is stored in MailAccount as SenderName from now.
+ ///
+ [Ignore]
+ public string DisplayName { get; set; }
+ public string Address { get; set; }
+ public string IncomingServer { get; set; }
+ public string IncomingServerUsername { get; set; }
+ public string IncomingServerPassword { get; set; }
+ public string IncomingServerPort { get; set; }
- public CustomIncomingServerType IncomingServerType { get; set; }
+ public CustomIncomingServerType IncomingServerType { get; set; }
- public string OutgoingServer { get; set; }
- public string OutgoingServerPort { get; set; }
- public string OutgoingServerUsername { get; set; }
- public string OutgoingServerPassword { get; set; }
+ public string OutgoingServer { get; set; }
+ public string OutgoingServerPort { get; set; }
+ public string OutgoingServerUsername { get; set; }
+ public string OutgoingServerPassword { get; set; }
- ///
- /// useSSL True: SslOnConnect
- /// useSSL False: StartTlsWhenAvailable
- ///
+ ///
+ /// useSSL True: SslOnConnect
+ /// useSSL False: StartTlsWhenAvailable
+ ///
- public ImapConnectionSecurity IncomingServerSocketOption { get; set; }
- public ImapAuthenticationMethod IncomingAuthenticationMethod { get; set; }
+ public ImapConnectionSecurity IncomingServerSocketOption { get; set; }
+ public ImapAuthenticationMethod IncomingAuthenticationMethod { get; set; }
- public ImapConnectionSecurity OutgoingServerSocketOption { get; set; }
- public ImapAuthenticationMethod OutgoingAuthenticationMethod { get; set; }
+ public ImapConnectionSecurity OutgoingServerSocketOption { get; set; }
+ public ImapAuthenticationMethod OutgoingAuthenticationMethod { get; set; }
- public string ProxyServer { get; set; }
- public string ProxyServerPort { get; set; }
+ public string ProxyServer { get; set; }
+ public string ProxyServerPort { get; set; }
- ///
- /// Number of concurrent clients that can connect to the server.
- /// Default is 5.
- ///
- public int MaxConcurrentClients { get; set; }
+ ///
+ /// Number of concurrent clients that can connect to the server.
+ /// Default is 5.
+ ///
+ public int MaxConcurrentClients { get; set; }
+ }
}
diff --git a/Wino.Core.Domain/Entities/Shared/MailAccount.cs b/Wino.Core.Domain/Entities/Shared/MailAccount.cs
index 8f40f70d..20c2a304 100644
--- a/Wino.Core.Domain/Entities/Shared/MailAccount.cs
+++ b/Wino.Core.Domain/Entities/Shared/MailAccount.cs
@@ -3,108 +3,109 @@ using SQLite;
using Wino.Core.Domain.Entities.Mail;
using Wino.Core.Domain.Enums;
-namespace Wino.Core.Domain.Entities.Shared;
-
-public class MailAccount
+namespace Wino.Core.Domain.Entities.Shared
{
- [PrimaryKey]
- public Guid Id { get; set; }
+ public class MailAccount
+ {
+ [PrimaryKey]
+ public Guid Id { get; set; }
- ///
- /// Given name of the account in Wino.
- ///
- public string Name { get; set; }
+ ///
+ /// Given name of the account in Wino.
+ ///
+ public string Name { get; set; }
- ///
- /// TODO: Display name of the authenticated user/account.
- /// API integrations will query this value from the API.
- /// IMAP is populated by user on setup dialog.
- ///
+ ///
+ /// TODO: Display name of the authenticated user/account.
+ /// API integrations will query this value from the API.
+ /// IMAP is populated by user on setup dialog.
+ ///
- public string SenderName { get; set; }
+ public string SenderName { get; set; }
- ///
- /// Account e-mail address.
- ///
- public string Address { get; set; }
+ ///
+ /// Account e-mail address.
+ ///
+ public string Address { get; set; }
- ///
- /// Provider type of the account. Outlook,Gmail etc...
- ///
- public MailProviderType ProviderType { get; set; }
+ ///
+ /// Provider type of the account. Outlook,Gmail etc...
+ ///
+ public MailProviderType ProviderType { get; set; }
- ///
- /// For tracking mail change delta.
- /// Gmail : historyId
- /// Outlook: deltaToken
- ///
- public string SynchronizationDeltaIdentifier { get; set; }
+ ///
+ /// For tracking mail change delta.
+ /// Gmail : historyId
+ /// Outlook: deltaToken
+ ///
+ public string SynchronizationDeltaIdentifier { get; set; }
- ///
- /// For tracking calendar change delta.
- /// Gmail: It's per-calendar, so unused.
- /// Outlook: deltaLink
- ///
- public string CalendarSynchronizationDeltaIdentifier { get; set; }
+ ///
+ /// For tracking calendar change delta.
+ /// Gmail: It's per-calendar, so unused.
+ /// Outlook: deltaLink
+ ///
+ public string CalendarSynchronizationDeltaIdentifier { get; set; }
- ///
- /// TODO: Gets or sets the custom account identifier color in hex.
- ///
- public string AccountColorHex { get; set; }
+ ///
+ /// TODO: Gets or sets the custom account identifier color in hex.
+ ///
+ public string AccountColorHex { get; set; }
- ///
- /// Base64 encoded profile picture of the account.
- ///
- public string Base64ProfilePictureData { get; set; }
+ ///
+ /// Base64 encoded profile picture of the account.
+ ///
+ public string Base64ProfilePictureData { get; set; }
- ///
- /// Gets or sets the listing order of the account in the accounts list.
- ///
- public int Order { get; set; }
+ ///
+ /// Gets or sets the listing order of the account in the accounts list.
+ ///
+ public int Order { get; set; }
- ///
- /// Gets or sets whether the account has any reason for an interactive user action to fix continue operating.
- ///
- public AccountAttentionReason AttentionReason { get; set; }
+ ///
+ /// Gets or sets whether the account has any reason for an interactive user action to fix continue operating.
+ ///
+ public AccountAttentionReason AttentionReason { get; set; }
- ///
- /// Gets or sets the id of the merged inbox this account belongs to.
- ///
- public Guid? MergedInboxId { get; set; }
+ ///
+ /// Gets or sets the id of the merged inbox this account belongs to.
+ ///
+ public Guid? MergedInboxId { get; set; }
- ///
- /// Gets or sets the additional IMAP provider assignment for the account.
- /// Providers that use IMAP as a synchronizer but have special requirements.
- ///
- public SpecialImapProvider SpecialImapProvider { get; set; }
+ ///
+ /// Gets or sets the additional IMAP provider assignment for the account.
+ /// Providers that use IMAP as a synchronizer but have special requirements.
+ ///
+ public SpecialImapProvider SpecialImapProvider { get; set; }
- ///
- /// Contains the merged inbox this account belongs to.
- /// Ignored for all SQLite operations.
- ///
- [Ignore]
- public MergedInbox MergedInbox { get; set; }
+ ///
+ /// Contains the merged inbox this account belongs to.
+ /// Ignored for all SQLite operations.
+ ///
+ [Ignore]
+ public MergedInbox MergedInbox { get; set; }
- ///
- /// Populated only when account has custom server information.
- ///
+ ///
+ /// Populated only when account has custom server information.
+ ///
- [Ignore]
- public CustomServerInformation ServerInformation { get; set; }
+ [Ignore]
+ public CustomServerInformation ServerInformation { get; set; }
- ///
- /// Account preferences.
- ///
- [Ignore]
- public MailAccountPreferences Preferences { get; set; }
+ ///
+ /// Account preferences.
+ ///
+ [Ignore]
+ public MailAccountPreferences Preferences { get; set; }
- ///
- /// Gets whether the account can perform ProfileInformation sync type.
- ///
- public bool IsProfileInfoSyncSupported => ProviderType == MailProviderType.Outlook || ProviderType == MailProviderType.Gmail;
+ ///
+ /// Gets whether the account can perform ProfileInformation sync type.
+ ///
+ public bool IsProfileInfoSyncSupported => ProviderType == MailProviderType.Outlook || ProviderType == MailProviderType.Gmail;
- ///
- /// Gets whether the account can perform AliasInformation sync type.
- ///
- public bool IsAliasSyncSupported => ProviderType == MailProviderType.Gmail;
+ ///
+ /// Gets whether the account can perform AliasInformation sync type.
+ ///
+ public bool IsAliasSyncSupported => ProviderType == MailProviderType.Gmail;
+ }
}
diff --git a/Wino.Core.Domain/Entities/Shared/MailAccountPreferences.cs b/Wino.Core.Domain/Entities/Shared/MailAccountPreferences.cs
index 4330db83..92e97aab 100644
--- a/Wino.Core.Domain/Entities/Shared/MailAccountPreferences.cs
+++ b/Wino.Core.Domain/Entities/Shared/MailAccountPreferences.cs
@@ -1,53 +1,54 @@
using System;
using SQLite;
-namespace Wino.Core.Domain.Entities.Shared;
-
-public class MailAccountPreferences
+namespace Wino.Core.Domain.Entities.Shared
{
- [PrimaryKey]
- public Guid Id { get; set; }
+ public class MailAccountPreferences
+ {
+ [PrimaryKey]
+ public Guid Id { get; set; }
- ///
- /// Id of the account in MailAccount table.
- ///
- public Guid AccountId { get; set; }
+ ///
+ /// Id of the account in MailAccount table.
+ ///
+ public Guid AccountId { get; set; }
- ///
- /// Gets or sets whether sent draft messages should be appended to the sent folder.
- /// Some IMAP servers do this automatically, some don't.
- /// It's disabled by default.
- ///
- public bool ShouldAppendMessagesToSentFolder { get; set; }
+ ///
+ /// Gets or sets whether sent draft messages should be appended to the sent folder.
+ /// Some IMAP servers do this automatically, some don't.
+ /// It's disabled by default.
+ ///
+ public bool ShouldAppendMessagesToSentFolder { get; set; }
- ///
- /// Gets or sets whether the notifications are enabled for the account.
- ///
- public bool IsNotificationsEnabled { get; set; }
+ ///
+ /// Gets or sets whether the notifications are enabled for the account.
+ ///
+ public bool IsNotificationsEnabled { get; set; }
- ///
- /// Gets or sets whether the account has Focused inbox support.
- /// Null if the account provider type doesn't support Focused inbox.
- ///
- public bool? IsFocusedInboxEnabled { get; set; }
+ ///
+ /// Gets or sets whether the account has Focused inbox support.
+ /// Null if the account provider type doesn't support Focused inbox.
+ ///
+ public bool? IsFocusedInboxEnabled { get; set; }
- ///
- /// Gets or sets whether signature should be appended automatically.
- ///
- public bool IsSignatureEnabled { get; set; }
+ ///
+ /// Gets or sets whether signature should be appended automatically.
+ ///
+ public bool IsSignatureEnabled { get; set; }
- ///
- /// Gets or sets whether this account's unread items should be included in taskbar badge.
- ///
- public bool IsTaskbarBadgeEnabled { get; set; } = true;
+ ///
+ /// Gets or sets whether this account's unread items should be included in taskbar badge.
+ ///
+ public bool IsTaskbarBadgeEnabled { get; set; } = true;
- ///
- /// Gets or sets signature for new messages. Null if signature is not needed.
- ///
- public Guid? SignatureIdForNewMessages { get; set; }
+ ///
+ /// Gets or sets signature for new messages. Null if signature is not needed.
+ ///
+ public Guid? SignatureIdForNewMessages { get; set; }
- ///
- /// Gets or sets signature for following messages. Null if signature is not needed.
- ///
- public Guid? SignatureIdForFollowingMessages { get; set; }
+ ///
+ /// Gets or sets signature for following messages. Null if signature is not needed.
+ ///
+ public Guid? SignatureIdForFollowingMessages { get; set; }
+ }
}
diff --git a/Wino.Core.Domain/Enums/AccountAttentionReason.cs b/Wino.Core.Domain/Enums/AccountAttentionReason.cs
index 61e157b0..b192e74f 100644
--- a/Wino.Core.Domain/Enums/AccountAttentionReason.cs
+++ b/Wino.Core.Domain/Enums/AccountAttentionReason.cs
@@ -1,8 +1,9 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum AccountAttentionReason
+namespace Wino.Core.Domain.Enums
{
- None,
- InvalidCredentials,
- MissingSystemFolderConfiguration
+ public enum AccountAttentionReason
+ {
+ None,
+ InvalidCredentials,
+ MissingSystemFolderConfiguration
+ }
}
diff --git a/Wino.Core.Domain/Enums/AccountCreationDialogState.cs b/Wino.Core.Domain/Enums/AccountCreationDialogState.cs
index 0cc10546..17393e26 100644
--- a/Wino.Core.Domain/Enums/AccountCreationDialogState.cs
+++ b/Wino.Core.Domain/Enums/AccountCreationDialogState.cs
@@ -1,16 +1,17 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum AccountCreationDialogState
+namespace Wino.Core.Domain.Enums
{
- Idle,
- SigningIn,
- PreparingFolders,
- Completed,
- ManuelSetupWaiting,
- TestingConnection,
- AutoDiscoverySetup,
- AutoDiscoveryInProgress,
- FetchingProfileInformation,
- Canceled,
- FetchingEvents
+ public enum AccountCreationDialogState
+ {
+ Idle,
+ SigningIn,
+ PreparingFolders,
+ Completed,
+ ManuelSetupWaiting,
+ TestingConnection,
+ AutoDiscoverySetup,
+ AutoDiscoveryInProgress,
+ FetchingProfileInformation,
+ Canceled,
+ FetchingEvents
+ }
}
diff --git a/Wino.Core.Domain/Enums/AccountSynchronizerState.cs b/Wino.Core.Domain/Enums/AccountSynchronizerState.cs
index 6f3f22e8..9a9e0810 100644
--- a/Wino.Core.Domain/Enums/AccountSynchronizerState.cs
+++ b/Wino.Core.Domain/Enums/AccountSynchronizerState.cs
@@ -1,11 +1,12 @@
-namespace Wino.Core.Domain.Enums;
-
-///
-/// Indicates the state of synchronizer.
-///
-public enum AccountSynchronizerState
+namespace Wino.Core.Domain.Enums
{
- Idle,
- ExecutingRequests,
- Synchronizing
+ ///
+ /// Indicates the state of synchronizer.
+ ///
+ public enum AccountSynchronizerState
+ {
+ Idle,
+ ExecutingRequests,
+ Synchronizing
+ }
}
diff --git a/Wino.Core.Domain/Enums/AppLanguage.cs b/Wino.Core.Domain/Enums/AppLanguage.cs
index 9a73afb2..004fad36 100644
--- a/Wino.Core.Domain/Enums/AppLanguage.cs
+++ b/Wino.Core.Domain/Enums/AppLanguage.cs
@@ -1,20 +1,21 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum AppLanguage
+namespace Wino.Core.Domain.Enums
{
- None,
- English,
- Deutsch,
- Russian,
- Turkish,
- Polish,
- Czech,
- Chinese,
- Spanish,
- French,
- Indonesian,
- Greek,
- PortugeseBrazil,
- Italian,
- Romanian
+ public enum AppLanguage
+ {
+ None,
+ English,
+ Deutsch,
+ Russian,
+ Turkish,
+ Polish,
+ Czech,
+ Chinese,
+ Spanish,
+ French,
+ Indonesian,
+ Greek,
+ PortugeseBrazil,
+ Italian,
+ Romanian
+ }
}
diff --git a/Wino.Core.Domain/Enums/AppThemeType.cs b/Wino.Core.Domain/Enums/AppThemeType.cs
index c6e25b79..138f499b 100644
--- a/Wino.Core.Domain/Enums/AppThemeType.cs
+++ b/Wino.Core.Domain/Enums/AppThemeType.cs
@@ -1,8 +1,9 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum AppThemeType
+namespace Wino.Core.Domain.Enums
{
- System,
- PreDefined,
- Custom,
+ public enum AppThemeType
+ {
+ System,
+ PreDefined,
+ Custom,
+ }
}
diff --git a/Wino.Core.Domain/Enums/ApplicationElementTheme.cs b/Wino.Core.Domain/Enums/ApplicationElementTheme.cs
index 24da4411..6c3e0bca 100644
--- a/Wino.Core.Domain/Enums/ApplicationElementTheme.cs
+++ b/Wino.Core.Domain/Enums/ApplicationElementTheme.cs
@@ -1,8 +1,9 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum ApplicationElementTheme
+namespace Wino.Core.Domain.Enums
{
- Default,
- Light,
- Dark
+ public enum ApplicationElementTheme
+ {
+ Default,
+ Light,
+ Dark
+ }
}
diff --git a/Wino.Core.Domain/Enums/AttendeeStatus.cs b/Wino.Core.Domain/Enums/AttendeeStatus.cs
index 06bd5a02..57203f30 100644
--- a/Wino.Core.Domain/Enums/AttendeeStatus.cs
+++ b/Wino.Core.Domain/Enums/AttendeeStatus.cs
@@ -1,9 +1,10 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum AttendeeStatus
+namespace Wino.Core.Domain.Enums
{
- NeedsAction,
- Accepted,
- Tentative,
- Declined
+ public enum AttendeeStatus
+ {
+ NeedsAction,
+ Accepted,
+ Tentative,
+ Declined
+ }
}
diff --git a/Wino.Core.Domain/Enums/BackgroundSynchronizationReason.cs b/Wino.Core.Domain/Enums/BackgroundSynchronizationReason.cs
index 1bd8060c..eac0a746 100644
--- a/Wino.Core.Domain/Enums/BackgroundSynchronizationReason.cs
+++ b/Wino.Core.Domain/Enums/BackgroundSynchronizationReason.cs
@@ -1,7 +1,8 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum BackgroundSynchronizationReason
+namespace Wino.Core.Domain.Enums
{
- SessionConnected,
- Timer
+ public enum BackgroundSynchronizationReason
+ {
+ SessionConnected,
+ Timer
+ }
}
diff --git a/Wino.Core.Domain/Enums/CalendarDisplayType.cs b/Wino.Core.Domain/Enums/CalendarDisplayType.cs
index 5582899b..d4b4c2b8 100644
--- a/Wino.Core.Domain/Enums/CalendarDisplayType.cs
+++ b/Wino.Core.Domain/Enums/CalendarDisplayType.cs
@@ -1,10 +1,11 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum CalendarDisplayType
+namespace Wino.Core.Domain.Enums
{
- Day,
- Week,
- WorkWeek,
- Month,
- Year
+ public enum CalendarDisplayType
+ {
+ Day,
+ Week,
+ WorkWeek,
+ Month,
+ Year
+ }
}
diff --git a/Wino.Core.Domain/Enums/CalendarEventTargetType.cs b/Wino.Core.Domain/Enums/CalendarEventTargetType.cs
index 96d2893e..ef42f74f 100644
--- a/Wino.Core.Domain/Enums/CalendarEventTargetType.cs
+++ b/Wino.Core.Domain/Enums/CalendarEventTargetType.cs
@@ -1,7 +1,8 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum CalendarEventTargetType
+namespace Wino.Core.Domain.Enums
{
- Single, // Show details for a single event.
- Series // Show the series event. Parent of all recurring events.
+ public enum CalendarEventTargetType
+ {
+ Single, // Show details for a single event.
+ Series // Show the series event. Parent of all recurring events.
+ }
}
diff --git a/Wino.Core.Domain/Enums/CalendarInitInitiative.cs b/Wino.Core.Domain/Enums/CalendarInitInitiative.cs
index d5e08a76..d9a0c880 100644
--- a/Wino.Core.Domain/Enums/CalendarInitInitiative.cs
+++ b/Wino.Core.Domain/Enums/CalendarInitInitiative.cs
@@ -1,10 +1,11 @@
-namespace Wino.Core.Domain.Enums;
-
-///
-/// Trigger to load more data.
-///
-public enum CalendarInitInitiative
+namespace Wino.Core.Domain.Enums
{
- User,
- App
+ ///
+ /// Trigger to load more data.
+ ///
+ public enum CalendarInitInitiative
+ {
+ User,
+ App
+ }
}
diff --git a/Wino.Core.Domain/Enums/CalendarItemRecurrenceFrequency.cs b/Wino.Core.Domain/Enums/CalendarItemRecurrenceFrequency.cs
index d4288648..00c6053b 100644
--- a/Wino.Core.Domain/Enums/CalendarItemRecurrenceFrequency.cs
+++ b/Wino.Core.Domain/Enums/CalendarItemRecurrenceFrequency.cs
@@ -1,9 +1,10 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum CalendarItemRecurrenceFrequency
+namespace Wino.Core.Domain.Enums
{
- Daily,
- Weekly,
- Monthly,
- Yearly
+ public enum CalendarItemRecurrenceFrequency
+ {
+ Daily,
+ Weekly,
+ Monthly,
+ Yearly
+ }
}
diff --git a/Wino.Core.Domain/Enums/CalendarItemReminderType.cs b/Wino.Core.Domain/Enums/CalendarItemReminderType.cs
index 38bec546..669a06c6 100644
--- a/Wino.Core.Domain/Enums/CalendarItemReminderType.cs
+++ b/Wino.Core.Domain/Enums/CalendarItemReminderType.cs
@@ -1,7 +1,8 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum CalendarItemReminderType
+namespace Wino.Core.Domain.Enums
{
- Popup,
- Email
+ public enum CalendarItemReminderType
+ {
+ Popup,
+ Email
+ }
}
diff --git a/Wino.Core.Domain/Enums/CalendarItemStatus.cs b/Wino.Core.Domain/Enums/CalendarItemStatus.cs
index e8605573..ac4ce6e8 100644
--- a/Wino.Core.Domain/Enums/CalendarItemStatus.cs
+++ b/Wino.Core.Domain/Enums/CalendarItemStatus.cs
@@ -1,9 +1,10 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum CalendarItemStatus
+namespace Wino.Core.Domain.Enums
{
- NotResponded,
- Confirmed,
- Tentative,
- Cancelled,
+ public enum CalendarItemStatus
+ {
+ NotResponded,
+ Confirmed,
+ Tentative,
+ Cancelled,
+ }
}
diff --git a/Wino.Core.Domain/Enums/CalendarItemVisibility.cs b/Wino.Core.Domain/Enums/CalendarItemVisibility.cs
index b6804893..5fc3143e 100644
--- a/Wino.Core.Domain/Enums/CalendarItemVisibility.cs
+++ b/Wino.Core.Domain/Enums/CalendarItemVisibility.cs
@@ -1,9 +1,10 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum CalendarItemVisibility
+namespace Wino.Core.Domain.Enums
{
- Default,
- Public,
- Private,
- Confidential
+ public enum CalendarItemVisibility
+ {
+ Default,
+ Public,
+ Private,
+ Confidential
+ }
}
diff --git a/Wino.Core.Domain/Enums/CalendarLoadDirection.cs b/Wino.Core.Domain/Enums/CalendarLoadDirection.cs
index 763b25c2..b9dbea40 100644
--- a/Wino.Core.Domain/Enums/CalendarLoadDirection.cs
+++ b/Wino.Core.Domain/Enums/CalendarLoadDirection.cs
@@ -1,11 +1,12 @@
-namespace Wino.Core.Domain.Enums;
-
-///
-/// Which way in time to load more data for calendar.
-///
-public enum CalendarLoadDirection
+namespace Wino.Core.Domain.Enums
{
- Replace,
- Previous,
- Next
+ ///
+ /// Which way in time to load more data for calendar.
+ ///
+ public enum CalendarLoadDirection
+ {
+ Replace,
+ Previous,
+ Next
+ }
}
diff --git a/Wino.Core.Domain/Enums/CalendarOrientation.cs b/Wino.Core.Domain/Enums/CalendarOrientation.cs
index d1f7717f..67bd7b0c 100644
--- a/Wino.Core.Domain/Enums/CalendarOrientation.cs
+++ b/Wino.Core.Domain/Enums/CalendarOrientation.cs
@@ -1,7 +1,8 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum CalendarOrientation
+namespace Wino.Core.Domain.Enums
{
- Horizontal,
- Vertical
+ public enum CalendarOrientation
+ {
+ Horizontal,
+ Vertical
+ }
}
diff --git a/Wino.Core.Domain/Enums/CalendarSynchronizationType.cs b/Wino.Core.Domain/Enums/CalendarSynchronizationType.cs
index d9f01a19..9b19472b 100644
--- a/Wino.Core.Domain/Enums/CalendarSynchronizationType.cs
+++ b/Wino.Core.Domain/Enums/CalendarSynchronizationType.cs
@@ -1,10 +1,11 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum CalendarSynchronizationType
+namespace Wino.Core.Domain.Enums
{
- ExecuteRequests, // Execute all requests in the queue.
- CalendarMetadata, // Sync calendar metadata.
- CalendarEvents, // Sync all events for all calendars.
- SingleCalendar, // Sync events for only specified calendars.
- UpdateProfile // Update profile information only.
+ public enum CalendarSynchronizationType
+ {
+ ExecuteRequests, // Execute all requests in the queue.
+ CalendarMetadata, // Sync calendar metadata.
+ CalendarEvents, // Sync all events for all calendars.
+ SingleCalendar, // Sync events for only specified calendars.
+ UpdateProfile // Update profile information only.
+ }
}
diff --git a/Wino.Core.Domain/Enums/ChangeRequestType.cs b/Wino.Core.Domain/Enums/ChangeRequestType.cs
index 99ede7be..d0af1669 100644
--- a/Wino.Core.Domain/Enums/ChangeRequestType.cs
+++ b/Wino.Core.Domain/Enums/ChangeRequestType.cs
@@ -1,23 +1,24 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum ChangeRequestType
+namespace Wino.Core.Domain.Enums
{
- MailMarkAs,
- MailChangeFlag,
- MailHardDelete,
- MailMove,
- MailAlwaysMoveTo,
- MailChangeFocused,
- MailArchive,
- MailUnarchive,
- FolderMarkAsRead,
- FolderDelete,
- FolderEmpty,
- FolderRename,
- CreateNewDraft,
- CreateReplyDraft,
- CreateForwardDraft,
- DiscardDraft,
- SendDraft,
- FetchSingleItem
+ public enum ChangeRequestType
+ {
+ MailMarkAs,
+ MailChangeFlag,
+ MailHardDelete,
+ MailMove,
+ MailAlwaysMoveTo,
+ MailChangeFocused,
+ MailArchive,
+ MailUnarchive,
+ FolderMarkAsRead,
+ FolderDelete,
+ FolderEmpty,
+ FolderRename,
+ CreateNewDraft,
+ CreateReplyDraft,
+ CreateForwardDraft,
+ DiscardDraft,
+ SendDraft,
+ FetchSingleItem
+ }
}
diff --git a/Wino.Core.Domain/Enums/CustomIncomingServerType.cs b/Wino.Core.Domain/Enums/CustomIncomingServerType.cs
index 9890751a..40312e4a 100644
--- a/Wino.Core.Domain/Enums/CustomIncomingServerType.cs
+++ b/Wino.Core.Domain/Enums/CustomIncomingServerType.cs
@@ -1,7 +1,8 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum CustomIncomingServerType
+namespace Wino.Core.Domain.Enums
{
- POP3,
- IMAP4
+ public enum CustomIncomingServerType
+ {
+ POP3,
+ IMAP4
+ }
}
diff --git a/Wino.Core.Domain/Enums/DayHeaderDisplayType.cs b/Wino.Core.Domain/Enums/DayHeaderDisplayType.cs
index e67067f3..5a3b96fd 100644
--- a/Wino.Core.Domain/Enums/DayHeaderDisplayType.cs
+++ b/Wino.Core.Domain/Enums/DayHeaderDisplayType.cs
@@ -1,7 +1,8 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum DayHeaderDisplayType
+namespace Wino.Core.Domain.Enums
{
- TwelveHour,
- TwentyFourHour,
+ public enum DayHeaderDisplayType
+ {
+ TwelveHour,
+ TwentyFourHour,
+ }
}
diff --git a/Wino.Core.Domain/Enums/DraftCreationReason.cs b/Wino.Core.Domain/Enums/DraftCreationReason.cs
index b62e1e2f..e988c03a 100644
--- a/Wino.Core.Domain/Enums/DraftCreationReason.cs
+++ b/Wino.Core.Domain/Enums/DraftCreationReason.cs
@@ -1,9 +1,10 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum DraftCreationReason
+namespace Wino.Core.Domain.Enums
{
- Empty,
- Reply,
- ReplyAll,
- Forward
+ public enum DraftCreationReason
+ {
+ Empty,
+ Reply,
+ ReplyAll,
+ Forward
+ }
}
diff --git a/Wino.Core.Domain/Enums/FilterOptionType.cs b/Wino.Core.Domain/Enums/FilterOptionType.cs
index 6f9fce91..02bf14ff 100644
--- a/Wino.Core.Domain/Enums/FilterOptionType.cs
+++ b/Wino.Core.Domain/Enums/FilterOptionType.cs
@@ -1,10 +1,11 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum FilterOptionType
+namespace Wino.Core.Domain.Enums
{
- All,
- Unread,
- Flagged,
- Mentions,
- Files
+ public enum FilterOptionType
+ {
+ All,
+ Unread,
+ Flagged,
+ Mentions,
+ Files
+ }
}
diff --git a/Wino.Core.Domain/Enums/FolderOperation.cs b/Wino.Core.Domain/Enums/FolderOperation.cs
index b863c0dd..2d33144f 100644
--- a/Wino.Core.Domain/Enums/FolderOperation.cs
+++ b/Wino.Core.Domain/Enums/FolderOperation.cs
@@ -1,22 +1,23 @@
-namespace Wino.Core.Domain.Enums;
-
-///
-/// Defines all possible folder operations that can be done.
-/// Available values for each folder is returned by IContextMenuProvider
-/// that integrators hold.
-///
-public enum FolderOperation
+namespace Wino.Core.Domain.Enums
{
- None,
- Pin,
- Unpin,
- MarkAllAsRead,
- DontSync,
- Empty,
- Rename,
- Delete,
- Move,
- TurnOffNotifications,
- CreateSubFolder,
- Seperator
+ ///
+ /// Defines all possible folder operations that can be done.
+ /// Available values for each folder is returned by IContextMenuProvider
+ /// that integrators hold.
+ ///
+ public enum FolderOperation
+ {
+ None,
+ Pin,
+ Unpin,
+ MarkAllAsRead,
+ DontSync,
+ Empty,
+ Rename,
+ Delete,
+ Move,
+ TurnOffNotifications,
+ CreateSubFolder,
+ Seperator
+ }
}
diff --git a/Wino.Core.Domain/Enums/ImapAuthenticationMethod.cs b/Wino.Core.Domain/Enums/ImapAuthenticationMethod.cs
index b1922640..4390f247 100644
--- a/Wino.Core.Domain/Enums/ImapAuthenticationMethod.cs
+++ b/Wino.Core.Domain/Enums/ImapAuthenticationMethod.cs
@@ -1,12 +1,13 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum ImapAuthenticationMethod
+namespace Wino.Core.Domain.Enums
{
- Auto,
- None,
- NormalPassword,
- EncryptedPassword,
- Ntlm,
- CramMd5,
- DigestMd5
+ public enum ImapAuthenticationMethod
+ {
+ Auto,
+ None,
+ NormalPassword,
+ EncryptedPassword,
+ Ntlm,
+ CramMd5,
+ DigestMd5
+ }
}
diff --git a/Wino.Core.Domain/Enums/ImapConnectionSecurity.cs b/Wino.Core.Domain/Enums/ImapConnectionSecurity.cs
index e624bca1..9a3e6e7b 100644
--- a/Wino.Core.Domain/Enums/ImapConnectionSecurity.cs
+++ b/Wino.Core.Domain/Enums/ImapConnectionSecurity.cs
@@ -1,9 +1,10 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum ImapConnectionSecurity
+namespace Wino.Core.Domain.Enums
{
- Auto,
- None,
- StartTls,
- SslTls
+ public enum ImapConnectionSecurity
+ {
+ Auto,
+ None,
+ StartTls,
+ SslTls
+ }
}
diff --git a/Wino.Core.Domain/Enums/InfoBarAnimationType.cs b/Wino.Core.Domain/Enums/InfoBarAnimationType.cs
index 6728a194..488b667b 100644
--- a/Wino.Core.Domain/Enums/InfoBarAnimationType.cs
+++ b/Wino.Core.Domain/Enums/InfoBarAnimationType.cs
@@ -1,7 +1,8 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum InfoBarAnimationType
+namespace Wino.Core.Domain.Enums
{
- SlideFromRightToLeft,
- SlideFromBottomToTop
+ public enum InfoBarAnimationType
+ {
+ SlideFromRightToLeft,
+ SlideFromBottomToTop
+ }
}
diff --git a/Wino.Core.Domain/Enums/InfoBarMessageType.cs b/Wino.Core.Domain/Enums/InfoBarMessageType.cs
index 3bcfed06..15df6dcf 100644
--- a/Wino.Core.Domain/Enums/InfoBarMessageType.cs
+++ b/Wino.Core.Domain/Enums/InfoBarMessageType.cs
@@ -1,9 +1,10 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum InfoBarMessageType
+namespace Wino.Core.Domain.Enums
{
- Information,
- Success,
- Warning,
- Error
+ public enum InfoBarMessageType
+ {
+ Information,
+ Success,
+ Warning,
+ Error
+ }
}
diff --git a/Wino.Core.Domain/Enums/MailAttachmentType.cs b/Wino.Core.Domain/Enums/MailAttachmentType.cs
index 4459a893..b444b4c5 100644
--- a/Wino.Core.Domain/Enums/MailAttachmentType.cs
+++ b/Wino.Core.Domain/Enums/MailAttachmentType.cs
@@ -1,15 +1,16 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum MailAttachmentType
+namespace Wino.Core.Domain.Enums
{
- None,
- Executable,
- Image,
- Audio,
- Video,
- PDF,
- HTML,
- RarArchive,
- Archive,
- Other
+ public enum MailAttachmentType
+ {
+ None,
+ Executable,
+ Image,
+ Audio,
+ Video,
+ PDF,
+ HTML,
+ RarArchive,
+ Archive,
+ Other
+ }
}
diff --git a/Wino.Core.Domain/Enums/MailImportance.cs b/Wino.Core.Domain/Enums/MailImportance.cs
index 0c4ff9fa..22f2a6ab 100644
--- a/Wino.Core.Domain/Enums/MailImportance.cs
+++ b/Wino.Core.Domain/Enums/MailImportance.cs
@@ -1,8 +1,9 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum MailImportance
+namespace Wino.Core.Domain.Enums
{
- Low,
- Normal,
- High
+ public enum MailImportance
+ {
+ Low,
+ Normal,
+ High
+ }
}
diff --git a/Wino.Core.Domain/Enums/MailListDisplayMode.cs b/Wino.Core.Domain/Enums/MailListDisplayMode.cs
index c1d04584..d27278e7 100644
--- a/Wino.Core.Domain/Enums/MailListDisplayMode.cs
+++ b/Wino.Core.Domain/Enums/MailListDisplayMode.cs
@@ -1,8 +1,9 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum MailListDisplayMode
+namespace Wino.Core.Domain.Enums
{
- Spacious,
- Medium,
- Compact,
+ public enum MailListDisplayMode
+ {
+ Spacious,
+ Medium,
+ Compact,
+ }
}
diff --git a/Wino.Core.Domain/Enums/MailMarkAsOption.cs b/Wino.Core.Domain/Enums/MailMarkAsOption.cs
index fe335b5e..e08ce803 100644
--- a/Wino.Core.Domain/Enums/MailMarkAsOption.cs
+++ b/Wino.Core.Domain/Enums/MailMarkAsOption.cs
@@ -1,8 +1,9 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum MailMarkAsOption
+namespace Wino.Core.Domain.Enums
{
- WhenSelected,
- DontMark,
- AfterDelay
+ public enum MailMarkAsOption
+ {
+ WhenSelected,
+ DontMark,
+ AfterDelay
+ }
}
diff --git a/Wino.Core.Domain/Enums/MailOperation.cs b/Wino.Core.Domain/Enums/MailOperation.cs
index 973ff62f..445e6e4f 100644
--- a/Wino.Core.Domain/Enums/MailOperation.cs
+++ b/Wino.Core.Domain/Enums/MailOperation.cs
@@ -1,57 +1,58 @@
-namespace Wino.Core.Domain.Enums;
-
-// Synchronizer requests.
-public enum MailSynchronizerOperation
+namespace Wino.Core.Domain.Enums
{
- MarkRead,
- Move,
- Delete, // Hard delete.
- CreateDraft,
- Send,
- ChangeFlag,
- AlwaysMoveTo,
- MoveToFocused,
- Archive,
-}
+ // Synchronizer requests.
+ public enum MailSynchronizerOperation
+ {
+ MarkRead,
+ Move,
+ Delete, // Hard delete.
+ CreateDraft,
+ Send,
+ ChangeFlag,
+ AlwaysMoveTo,
+ MoveToFocused,
+ Archive,
+ }
-public enum FolderSynchronizerOperation
-{
- RenameFolder,
- EmptyFolder,
- MarkFolderRead,
-}
+ public enum FolderSynchronizerOperation
+ {
+ RenameFolder,
+ EmptyFolder,
+ MarkFolderRead,
+ }
-// UI requests
-public enum MailOperation
-{
- None,
- Archive,
- UnArchive,
- SoftDelete,
- HardDelete,
- Move,
- MoveToJunk,
- MoveToFocused,
- MoveToOther,
- AlwaysMoveToOther,
- AlwaysMoveToFocused,
- SetFlag,
- ClearFlag,
- MarkAsRead,
- MarkAsUnread,
- MarkAsNotJunk,
- Seperator,
- Ignore,
- Reply,
- ReplyAll,
- Zoom,
- SaveAs,
- Find,
- Forward,
- DarkEditor,
- LightEditor,
- Print,
- ViewMessageSource,
- DiscardLocalDraft,
- Navigate // For toast activation
+ // UI requests
+ public enum MailOperation
+ {
+ None,
+ Archive,
+ UnArchive,
+ SoftDelete,
+ HardDelete,
+ Move,
+ MoveToJunk,
+ MoveToFocused,
+ MoveToOther,
+ AlwaysMoveToOther,
+ AlwaysMoveToFocused,
+ SetFlag,
+ ClearFlag,
+ MarkAsRead,
+ MarkAsUnread,
+ MarkAsNotJunk,
+ Seperator,
+ Ignore,
+ Reply,
+ ReplyAll,
+ Zoom,
+ SaveAs,
+ Find,
+ Forward,
+ DarkEditor,
+ LightEditor,
+ Print,
+ ViewMessageSource,
+ DiscardLocalDraft,
+ Navigate // For toast activation
+ }
}
diff --git a/Wino.Core.Domain/Enums/MailProviderType.cs b/Wino.Core.Domain/Enums/MailProviderType.cs
index 42b6626d..1ff81b96 100644
--- a/Wino.Core.Domain/Enums/MailProviderType.cs
+++ b/Wino.Core.Domain/Enums/MailProviderType.cs
@@ -1,8 +1,9 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum MailProviderType
+namespace Wino.Core.Domain.Enums
{
- Outlook,
- Gmail,
- IMAP4 = 4 // 2-3 were removed after release. Don't change for backward compatibility.
+ public enum MailProviderType
+ {
+ Outlook,
+ Gmail,
+ IMAP4 = 4 // 2-3 were removed after release. Don't change for backward compatibility.
+ }
}
diff --git a/Wino.Core.Domain/Enums/MailSynchronizationType.cs b/Wino.Core.Domain/Enums/MailSynchronizationType.cs
index 650c2a59..e7dfe826 100644
--- a/Wino.Core.Domain/Enums/MailSynchronizationType.cs
+++ b/Wino.Core.Domain/Enums/MailSynchronizationType.cs
@@ -1,13 +1,14 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum MailSynchronizationType
+namespace Wino.Core.Domain.Enums
{
- UpdateProfile, // Only update profile information
- ExecuteRequests, // Run the queued requests, and then synchronize if needed.
- FoldersOnly, // Only synchronize folder metadata.
- InboxOnly, // Only Inbox, Sent, Draft and Deleted folders.
- CustomFolders, // Only sync folders that are specified in the options.
- FullFolders, // Synchronize all folders. This won't update profile or alias information.
- Alias, // Only update alias information
- IMAPIdle // Idle client triggered synchronization.
+ public enum MailSynchronizationType
+ {
+ UpdateProfile, // Only update profile information
+ ExecuteRequests, // Run the queued requests, and then synchronize if needed.
+ FoldersOnly, // Only synchronize folder metadata.
+ InboxOnly, // Only Inbox, Sent, Draft and Deleted folders.
+ CustomFolders, // Only sync folders that are specified in the options.
+ FullFolders, // Synchronize all folders. This won't update profile or alias information.
+ Alias, // Only update alias information
+ IMAPIdle // Idle client triggered synchronization.
+ }
}
diff --git a/Wino.Core.Domain/Enums/NavigationReferenceFrame.cs b/Wino.Core.Domain/Enums/NavigationReferenceFrame.cs
index 3495a98e..1d116fdb 100644
--- a/Wino.Core.Domain/Enums/NavigationReferenceFrame.cs
+++ b/Wino.Core.Domain/Enums/NavigationReferenceFrame.cs
@@ -1,7 +1,8 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum NavigationReferenceFrame
+namespace Wino.Core.Domain.Enums
{
- ShellFrame,
- RenderingFrame
+ public enum NavigationReferenceFrame
+ {
+ ShellFrame,
+ RenderingFrame
+ }
}
diff --git a/Wino.Core.Domain/Enums/PickFolderReason.cs b/Wino.Core.Domain/Enums/PickFolderReason.cs
index 52df0139..99067066 100644
--- a/Wino.Core.Domain/Enums/PickFolderReason.cs
+++ b/Wino.Core.Domain/Enums/PickFolderReason.cs
@@ -1,11 +1,12 @@
-namespace Wino.Core.Domain.Enums;
-
-///
-/// Defines the potential reasons for picking folder in the folder picking dialog.
-///
-public enum PickFolderReason
+namespace Wino.Core.Domain.Enums
{
- Move,
- SpecialFolder,
- Any
+ ///
+ /// Defines the potential reasons for picking folder in the folder picking dialog.
+ ///
+ public enum PickFolderReason
+ {
+ Move,
+ SpecialFolder,
+ Any
+ }
}
diff --git a/Wino.Core.Domain/Enums/PrintingResult.cs b/Wino.Core.Domain/Enums/PrintingResult.cs
index 2967b80f..64ab8564 100644
--- a/Wino.Core.Domain/Enums/PrintingResult.cs
+++ b/Wino.Core.Domain/Enums/PrintingResult.cs
@@ -1,9 +1,10 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum PrintingResult
+namespace Wino.Core.Domain.Enums
{
- Abandoned,
- Canceled,
- Failed,
- Submitted
+ public enum PrintingResult
+ {
+ Abandoned,
+ Canceled,
+ Failed,
+ Submitted
+ }
}
diff --git a/Wino.Core.Domain/Enums/ServerBackgroundMode.cs b/Wino.Core.Domain/Enums/ServerBackgroundMode.cs
index d7f9e5df..835a4776 100644
--- a/Wino.Core.Domain/Enums/ServerBackgroundMode.cs
+++ b/Wino.Core.Domain/Enums/ServerBackgroundMode.cs
@@ -1,11 +1,12 @@
-namespace Wino.Core.Domain.Enums;
-
-///
-/// What should happen to server app when the client is terminated.
-///
-public enum ServerBackgroundMode
+namespace Wino.Core.Domain.Enums
{
- MinimizedTray, // Still runs, tray icon is visible.
- Invisible, // Still runs, tray icon is invisible.
- Terminate // Server is terminated as Wino terminates.
+ ///
+ /// What should happen to server app when the client is terminated.
+ ///
+ public enum ServerBackgroundMode
+ {
+ MinimizedTray, // Still runs, tray icon is visible.
+ Invisible, // Still runs, tray icon is invisible.
+ Terminate // Server is terminated as Wino terminates.
+ }
}
diff --git a/Wino.Core.Domain/Enums/SortingOptionType.cs b/Wino.Core.Domain/Enums/SortingOptionType.cs
index f259fcf9..4a88d2fd 100644
--- a/Wino.Core.Domain/Enums/SortingOptionType.cs
+++ b/Wino.Core.Domain/Enums/SortingOptionType.cs
@@ -1,7 +1,8 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum SortingOptionType
+namespace Wino.Core.Domain.Enums
{
- ReceiveDate,
- Sender
+ public enum SortingOptionType
+ {
+ ReceiveDate,
+ Sender
+ }
}
diff --git a/Wino.Core.Domain/Enums/SpecialFolderType.cs b/Wino.Core.Domain/Enums/SpecialFolderType.cs
index e85463f1..b26ae4c3 100644
--- a/Wino.Core.Domain/Enums/SpecialFolderType.cs
+++ b/Wino.Core.Domain/Enums/SpecialFolderType.cs
@@ -1,23 +1,24 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum SpecialFolderType
+namespace Wino.Core.Domain.Enums
{
- Inbox,
- Starred,
- Important,
- Sent,
- Draft,
- Archive,
- Deleted,
- Junk,
- Chat,
- Category,
- Unread,
- Forums,
- Updates,
- Personal,
- Promotions,
- Social,
- Other,
- More
+ public enum SpecialFolderType
+ {
+ Inbox,
+ Starred,
+ Important,
+ Sent,
+ Draft,
+ Archive,
+ Deleted,
+ Junk,
+ Chat,
+ Category,
+ Unread,
+ Forums,
+ Updates,
+ Personal,
+ Promotions,
+ Social,
+ Other,
+ More
+ }
}
diff --git a/Wino.Core.Domain/Enums/SpecialImapProvider.cs b/Wino.Core.Domain/Enums/SpecialImapProvider.cs
index 18d182bf..27254a86 100644
--- a/Wino.Core.Domain/Enums/SpecialImapProvider.cs
+++ b/Wino.Core.Domain/Enums/SpecialImapProvider.cs
@@ -1,8 +1,9 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum SpecialImapProvider
+namespace Wino.Core.Domain.Enums
{
- None,
- iCloud,
- Yahoo
+ public enum SpecialImapProvider
+ {
+ None,
+ iCloud,
+ Yahoo
+ }
}
diff --git a/Wino.Core.Domain/Enums/StartupBehaviorResult.cs b/Wino.Core.Domain/Enums/StartupBehaviorResult.cs
index b33a9e1b..912f0ecc 100644
--- a/Wino.Core.Domain/Enums/StartupBehaviorResult.cs
+++ b/Wino.Core.Domain/Enums/StartupBehaviorResult.cs
@@ -1,10 +1,11 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum StartupBehaviorResult
+namespace Wino.Core.Domain.Enums
{
- Enabled,
- Disabled,
- DisabledByUser,
- DisabledByPolicy,
- Fatal
+ public enum StartupBehaviorResult
+ {
+ Enabled,
+ Disabled,
+ DisabledByUser,
+ DisabledByPolicy,
+ Fatal
+ }
}
diff --git a/Wino.Core.Domain/Enums/StorePurchaseResult.cs b/Wino.Core.Domain/Enums/StorePurchaseResult.cs
index f86e9a3f..8364b81a 100644
--- a/Wino.Core.Domain/Enums/StorePurchaseResult.cs
+++ b/Wino.Core.Domain/Enums/StorePurchaseResult.cs
@@ -1,18 +1,19 @@
-namespace Wino.Core.Domain.Enums;
-
-// From the SDK.
-public enum StorePurchaseResult
+namespace Wino.Core.Domain.Enums
{
- //
- // Summary:
- // The purchase request succeeded.
- Succeeded,
- //
- // Summary:
- // The current user has already purchased the specified app or add-on.
- AlreadyPurchased,
- //
- // Summary:
- // The purchase request did not succeed.
- NotPurchased,
+ // From the SDK.
+ public enum StorePurchaseResult
+ {
+ //
+ // Summary:
+ // The purchase request succeeded.
+ Succeeded,
+ //
+ // Summary:
+ // The current user has already purchased the specified app or add-on.
+ AlreadyPurchased,
+ //
+ // Summary:
+ // The purchase request did not succeed.
+ NotPurchased,
+ }
}
diff --git a/Wino.Core.Domain/Enums/SynchronizationCompletedState.cs b/Wino.Core.Domain/Enums/SynchronizationCompletedState.cs
index 6a2edb6c..b4376afe 100644
--- a/Wino.Core.Domain/Enums/SynchronizationCompletedState.cs
+++ b/Wino.Core.Domain/Enums/SynchronizationCompletedState.cs
@@ -1,8 +1,9 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum SynchronizationCompletedState
+namespace Wino.Core.Domain.Enums
{
- Success, // All succeeded.
- Canceled, // Canceled by user or HTTP call.
- Failed // Exception.
+ public enum SynchronizationCompletedState
+ {
+ Success, // All succeeded.
+ Canceled, // Canceled by user or HTTP call.
+ Failed // Exception.
+ }
}
diff --git a/Wino.Core.Domain/Enums/SynchronizationSource.cs b/Wino.Core.Domain/Enums/SynchronizationSource.cs
index d7b3e2d3..f64b00e5 100644
--- a/Wino.Core.Domain/Enums/SynchronizationSource.cs
+++ b/Wino.Core.Domain/Enums/SynchronizationSource.cs
@@ -1,11 +1,12 @@
-namespace Wino.Core.Domain.Enums;
-
-///
-/// Enumeration for the source of synchronization.
-/// Right now it can either be from the client or the server.
-///
-public enum SynchronizationSource
+namespace Wino.Core.Domain.Enums
{
- Client,
- Server
+ ///
+ /// Enumeration for the source of synchronization.
+ /// Right now it can either be from the client or the server.
+ ///
+ public enum SynchronizationSource
+ {
+ Client,
+ Server
+ }
}
diff --git a/Wino.Core.Domain/Enums/WinoAppType.cs b/Wino.Core.Domain/Enums/WinoAppType.cs
index 4a35b9c8..da453cd5 100644
--- a/Wino.Core.Domain/Enums/WinoAppType.cs
+++ b/Wino.Core.Domain/Enums/WinoAppType.cs
@@ -1,8 +1,9 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum WinoAppType
+namespace Wino.Core.Domain.Enums
{
- Unknown,
- Mail,
- Calendar
+ public enum WinoAppType
+ {
+ Unknown,
+ Mail,
+ Calendar
+ }
}
diff --git a/Wino.Core.Domain/Enums/WinoCustomMessageDialogIcon.cs b/Wino.Core.Domain/Enums/WinoCustomMessageDialogIcon.cs
index 11dbeab7..c85bb5af 100644
--- a/Wino.Core.Domain/Enums/WinoCustomMessageDialogIcon.cs
+++ b/Wino.Core.Domain/Enums/WinoCustomMessageDialogIcon.cs
@@ -1,9 +1,10 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum WinoCustomMessageDialogIcon
+namespace Wino.Core.Domain.Enums
{
- Information,
- Warning,
- Error,
- Question
+ public enum WinoCustomMessageDialogIcon
+ {
+ Information,
+ Warning,
+ Error,
+ Question
+ }
}
diff --git a/Wino.Core.Domain/Enums/WinoPage.cs b/Wino.Core.Domain/Enums/WinoPage.cs
index 2ef77757..2ad07bcf 100644
--- a/Wino.Core.Domain/Enums/WinoPage.cs
+++ b/Wino.Core.Domain/Enums/WinoPage.cs
@@ -1,33 +1,34 @@
-namespace Wino.Core.Domain.Enums;
-
-///
-/// All registered views.
-///
-public enum WinoPage
+namespace Wino.Core.Domain.Enums
{
- None,
- IdlePage,
- ComposePage,
- SettingsPage,
- MailRenderingPage,
- WelcomePage,
- AccountDetailsPage,
- MergedAccountDetailsPage,
- ManageAccountsPage,
- AccountManagementPage,
- SignatureManagementPage,
- AboutPage,
- PersonalizationPage,
- MessageListPage,
- MailListPage,
- ReadComposePanePage,
- LanguageTimePage,
- AppPreferencesPage,
- SettingOptionsPage,
- AliasManagementPage,
+ ///
+ /// All registered views.
+ ///
+ public enum WinoPage
+ {
+ None,
+ IdlePage,
+ ComposePage,
+ SettingsPage,
+ MailRenderingPage,
+ WelcomePage,
+ AccountDetailsPage,
+ MergedAccountDetailsPage,
+ ManageAccountsPage,
+ AccountManagementPage,
+ SignatureManagementPage,
+ AboutPage,
+ PersonalizationPage,
+ MessageListPage,
+ MailListPage,
+ ReadComposePanePage,
+ LanguageTimePage,
+ AppPreferencesPage,
+ SettingOptionsPage,
+ AliasManagementPage,
- // Calendar
- CalendarPage,
- CalendarSettingsPage,
- EventDetailsPage
+ // Calendar
+ CalendarPage,
+ CalendarSettingsPage,
+ EventDetailsPage
+ }
}
diff --git a/Wino.Core.Domain/Enums/WinoServerConnectionStatus.cs b/Wino.Core.Domain/Enums/WinoServerConnectionStatus.cs
index 9897b5bd..e997ce4b 100644
--- a/Wino.Core.Domain/Enums/WinoServerConnectionStatus.cs
+++ b/Wino.Core.Domain/Enums/WinoServerConnectionStatus.cs
@@ -1,10 +1,11 @@
-namespace Wino.Core.Domain.Enums;
-
-public enum WinoServerConnectionStatus
+namespace Wino.Core.Domain.Enums
{
- None,
- Connecting,
- Connected,
- Disconnected,
- Failed
+ public enum WinoServerConnectionStatus
+ {
+ None,
+ Connecting,
+ Connected,
+ Disconnected,
+ Failed
+ }
}
diff --git a/Wino.Core.Domain/Exceptions/AccountSetupCanceledException.cs b/Wino.Core.Domain/Exceptions/AccountSetupCanceledException.cs
index 05a8c616..03819076 100644
--- a/Wino.Core.Domain/Exceptions/AccountSetupCanceledException.cs
+++ b/Wino.Core.Domain/Exceptions/AccountSetupCanceledException.cs
@@ -1,6 +1,7 @@
-namespace Wino.Core.Domain.Exceptions;
-
-public class AccountSetupCanceledException : System.Exception
+namespace Wino.Core.Domain.Exceptions
{
+ public class AccountSetupCanceledException : System.Exception
+ {
+ }
}
diff --git a/Wino.Core.Domain/Exceptions/AuthenticationAttentionException.cs b/Wino.Core.Domain/Exceptions/AuthenticationAttentionException.cs
index 9d19e8dd..3d775d17 100644
--- a/Wino.Core.Domain/Exceptions/AuthenticationAttentionException.cs
+++ b/Wino.Core.Domain/Exceptions/AuthenticationAttentionException.cs
@@ -1,18 +1,19 @@
using System;
using Wino.Core.Domain.Entities.Shared;
-namespace Wino.Core.Domain.Exceptions;
-
-///
-/// Thrown when IAuthenticator requires user interaction to fix authentication issues.
-/// It can be expired and can't restorable token, or some stuff that requires re-authentication.
-///
-public class AuthenticationAttentionException : Exception
+namespace Wino.Core.Domain.Exceptions
{
- public AuthenticationAttentionException(MailAccount account)
+ ///
+ /// Thrown when IAuthenticator requires user interaction to fix authentication issues.
+ /// It can be expired and can't restorable token, or some stuff that requires re-authentication.
+ ///
+ public class AuthenticationAttentionException : Exception
{
- Account = account;
- }
+ public AuthenticationAttentionException(MailAccount account)
+ {
+ Account = account;
+ }
- public MailAccount Account { get; }
+ public MailAccount Account { get; }
+ }
}
diff --git a/Wino.Core.Domain/Exceptions/AuthenticationException.cs b/Wino.Core.Domain/Exceptions/AuthenticationException.cs
index ae7877ce..87e622df 100644
--- a/Wino.Core.Domain/Exceptions/AuthenticationException.cs
+++ b/Wino.Core.Domain/Exceptions/AuthenticationException.cs
@@ -1,17 +1,18 @@
using System;
-namespace Wino.Core.Domain.Exceptions;
-
-///
-/// All exceptions related to authentication.
-///
-public class AuthenticationException : Exception
+namespace Wino.Core.Domain.Exceptions
{
- public AuthenticationException(string message) : base(message)
+ ///
+ /// All exceptions related to authentication.
+ ///
+ public class AuthenticationException : Exception
{
- }
+ public AuthenticationException(string message) : base(message)
+ {
+ }
- public AuthenticationException(string message, Exception innerException) : base(message, innerException)
- {
+ public AuthenticationException(string message, Exception innerException) : base(message, innerException)
+ {
+ }
}
}
diff --git a/Wino.Core.Domain/Exceptions/BackgroundTaskRegistrationFailedException.cs b/Wino.Core.Domain/Exceptions/BackgroundTaskRegistrationFailedException.cs
index 1a8ac966..50d3d40d 100644
--- a/Wino.Core.Domain/Exceptions/BackgroundTaskRegistrationFailedException.cs
+++ b/Wino.Core.Domain/Exceptions/BackgroundTaskRegistrationFailedException.cs
@@ -1,8 +1,9 @@
using System;
-namespace Wino.Core.Domain.Exceptions;
-
-///
-/// An exception thrown when the background task registration is failed.
-///
-public class BackgroundTaskRegistrationFailedException : Exception { }
+namespace Wino.Core.Domain.Exceptions
+{
+ ///
+ /// An exception thrown when the background task registration is failed.
+ ///
+ public class BackgroundTaskRegistrationFailedException : Exception { }
+}
diff --git a/Wino.Core.Domain/Exceptions/ComposerMimeNotFoundException.cs b/Wino.Core.Domain/Exceptions/ComposerMimeNotFoundException.cs
index 8f06bdce..2a82d580 100644
--- a/Wino.Core.Domain/Exceptions/ComposerMimeNotFoundException.cs
+++ b/Wino.Core.Domain/Exceptions/ComposerMimeNotFoundException.cs
@@ -1,10 +1,11 @@
using System;
-namespace Wino.Core.Domain.Exceptions;
-
-///
-/// Thrown when composer cant find the mime to load.
-///
-public class ComposerMimeNotFoundException : Exception
+namespace Wino.Core.Domain.Exceptions
{
+ ///
+ /// Thrown when composer cant find the mime to load.
+ ///
+ public class ComposerMimeNotFoundException : Exception
+ {
+ }
}
diff --git a/Wino.Core.Domain/Exceptions/CustomThemeCreationFailedException.cs b/Wino.Core.Domain/Exceptions/CustomThemeCreationFailedException.cs
index f1f64dd9..8ffd3992 100644
--- a/Wino.Core.Domain/Exceptions/CustomThemeCreationFailedException.cs
+++ b/Wino.Core.Domain/Exceptions/CustomThemeCreationFailedException.cs
@@ -1,10 +1,11 @@
using System;
-namespace Wino.Core.Domain.Exceptions;
-
-public class CustomThemeCreationFailedException : Exception
+namespace Wino.Core.Domain.Exceptions
{
- public CustomThemeCreationFailedException(string message) : base(message)
+ public class CustomThemeCreationFailedException : Exception
{
+ public CustomThemeCreationFailedException(string message) : base(message)
+ {
+ }
}
}
diff --git a/Wino.Core.Domain/Exceptions/GoogleAuthenticationException.cs b/Wino.Core.Domain/Exceptions/GoogleAuthenticationException.cs
index 651e0530..71d244c1 100644
--- a/Wino.Core.Domain/Exceptions/GoogleAuthenticationException.cs
+++ b/Wino.Core.Domain/Exceptions/GoogleAuthenticationException.cs
@@ -1,6 +1,7 @@
-namespace Wino.Core.Domain.Exceptions;
-
-public class GoogleAuthenticationException : System.Exception
+namespace Wino.Core.Domain.Exceptions
{
- public GoogleAuthenticationException(string message) : base(message) { }
+ public class GoogleAuthenticationException : System.Exception
+ {
+ public GoogleAuthenticationException(string message) : base(message) { }
+ }
}
diff --git a/Wino.Core.Domain/Exceptions/ImapClientPoolException.cs b/Wino.Core.Domain/Exceptions/ImapClientPoolException.cs
index 9a185743..41226041 100644
--- a/Wino.Core.Domain/Exceptions/ImapClientPoolException.cs
+++ b/Wino.Core.Domain/Exceptions/ImapClientPoolException.cs
@@ -1,13 +1,14 @@
using System;
-namespace Wino.Core.Domain.Exceptions;
-
-public class ImapClientPoolException : Exception
+namespace Wino.Core.Domain.Exceptions
{
- public ImapClientPoolException(Exception innerException, string protocolLog) : base(Translator.Exception_ImapClientPoolFailed, innerException)
+ public class ImapClientPoolException : Exception
{
- ProtocolLog = protocolLog;
- }
+ public ImapClientPoolException(Exception innerException, string protocolLog) : base(Translator.Exception_ImapClientPoolFailed, innerException)
+ {
+ ProtocolLog = protocolLog;
+ }
- public string ProtocolLog { get; }
+ public string ProtocolLog { get; }
+ }
}
diff --git a/Wino.Core.Domain/Exceptions/ImapConnectionFailedPackage.cs b/Wino.Core.Domain/Exceptions/ImapConnectionFailedPackage.cs
index e431d969..10b956f8 100644
--- a/Wino.Core.Domain/Exceptions/ImapConnectionFailedPackage.cs
+++ b/Wino.Core.Domain/Exceptions/ImapConnectionFailedPackage.cs
@@ -1,17 +1,18 @@
using Wino.Core.Domain.Models.AutoDiscovery;
-namespace Wino.Core.Domain.Exceptions;
-
-public class ImapConnectionFailedPackage
+namespace Wino.Core.Domain.Exceptions
{
- public ImapConnectionFailedPackage(string errorMessage, string protocolLog, AutoDiscoverySettings settings)
+ public class ImapConnectionFailedPackage
{
- ErrorMessage = errorMessage;
- ProtocolLog = protocolLog;
- Settings = settings;
- }
+ public ImapConnectionFailedPackage(string errorMessage, string protocolLog, AutoDiscoverySettings settings)
+ {
+ ErrorMessage = errorMessage;
+ ProtocolLog = protocolLog;
+ Settings = settings;
+ }
- public AutoDiscoverySettings Settings { get; }
- public string ErrorMessage { get; set; }
- public string ProtocolLog { get; }
+ public AutoDiscoverySettings Settings { get; }
+ public string ErrorMessage { get; set; }
+ public string ProtocolLog { get; }
+ }
}
diff --git a/Wino.Core.Domain/Exceptions/ImapSynchronizerStrategyException.cs b/Wino.Core.Domain/Exceptions/ImapSynchronizerStrategyException.cs
index 46a87bdf..e59927ab 100644
--- a/Wino.Core.Domain/Exceptions/ImapSynchronizerStrategyException.cs
+++ b/Wino.Core.Domain/Exceptions/ImapSynchronizerStrategyException.cs
@@ -1,9 +1,10 @@
-namespace Wino.Core.Domain.Exceptions;
-
-public class ImapSynchronizerStrategyException : System.Exception
+namespace Wino.Core.Domain.Exceptions
{
- public ImapSynchronizerStrategyException(string message) : base(message)
+ public class ImapSynchronizerStrategyException : System.Exception
{
+ public ImapSynchronizerStrategyException(string message) : base(message)
+ {
+ }
}
}
diff --git a/Wino.Core.Domain/Exceptions/ImapTestSSLCertificateException.cs b/Wino.Core.Domain/Exceptions/ImapTestSSLCertificateException.cs
index 6fa96bdf..7b15c3cb 100644
--- a/Wino.Core.Domain/Exceptions/ImapTestSSLCertificateException.cs
+++ b/Wino.Core.Domain/Exceptions/ImapTestSSLCertificateException.cs
@@ -1,16 +1,17 @@
-namespace Wino.Core.Domain.Exceptions;
-
-public class ImapTestSSLCertificateException : System.Exception
+namespace Wino.Core.Domain.Exceptions
{
- public ImapTestSSLCertificateException(string issuer, string expirationDateString, string validFromDateString)
+ public class ImapTestSSLCertificateException : System.Exception
{
- Issuer = issuer;
- ExpirationDateString = expirationDateString;
- ValidFromDateString = validFromDateString;
+ public ImapTestSSLCertificateException(string issuer, string expirationDateString, string validFromDateString)
+ {
+ Issuer = issuer;
+ ExpirationDateString = expirationDateString;
+ ValidFromDateString = validFromDateString;
+ }
+
+ public string Issuer { get; set; }
+ public string ExpirationDateString { get; set; }
+ public string ValidFromDateString { get; set; }
+
}
-
- public string Issuer { get; set; }
- public string ExpirationDateString { get; set; }
- public string ValidFromDateString { get; set; }
-
}
diff --git a/Wino.Core.Domain/Exceptions/InvalidMoveTargetException.cs b/Wino.Core.Domain/Exceptions/InvalidMoveTargetException.cs
index 830a8205..05f3e7b4 100644
--- a/Wino.Core.Domain/Exceptions/InvalidMoveTargetException.cs
+++ b/Wino.Core.Domain/Exceptions/InvalidMoveTargetException.cs
@@ -1,5 +1,6 @@
using System;
-namespace Wino.Core.Domain.Exceptions;
-
-public class InvalidMoveTargetException : Exception { }
+namespace Wino.Core.Domain.Exceptions
+{
+ public class InvalidMoveTargetException : Exception { }
+}
diff --git a/Wino.Core.Domain/Exceptions/MissingAliasException.cs b/Wino.Core.Domain/Exceptions/MissingAliasException.cs
index adc19e06..f81cb8c6 100644
--- a/Wino.Core.Domain/Exceptions/MissingAliasException.cs
+++ b/Wino.Core.Domain/Exceptions/MissingAliasException.cs
@@ -1,6 +1,7 @@
-namespace Wino.Core.Domain.Exceptions;
-
-public class MissingAliasException : System.Exception
+namespace Wino.Core.Domain.Exceptions
{
- public MissingAliasException() : base(Translator.Exception_MissingAlias) { }
+ public class MissingAliasException : System.Exception
+ {
+ public MissingAliasException() : base(Translator.Exception_MissingAlias) { }
+ }
}
diff --git a/Wino.Core.Domain/Exceptions/SynchronizerEntityNotFoundException.cs b/Wino.Core.Domain/Exceptions/SynchronizerEntityNotFoundException.cs
index eb337480..4d35aad6 100644
--- a/Wino.Core.Domain/Exceptions/SynchronizerEntityNotFoundException.cs
+++ b/Wino.Core.Domain/Exceptions/SynchronizerEntityNotFoundException.cs
@@ -1,10 +1,11 @@
using System;
-namespace Wino.Core.Domain.Exceptions;
-
-public class SynchronizerEntityNotFoundException : Exception
+namespace Wino.Core.Domain.Exceptions
{
- public SynchronizerEntityNotFoundException(string message) : base(message)
+ public class SynchronizerEntityNotFoundException : Exception
{
+ public SynchronizerEntityNotFoundException(string message) : base(message)
+ {
+ }
}
}
diff --git a/Wino.Core.Domain/Exceptions/SynchronizerException.cs b/Wino.Core.Domain/Exceptions/SynchronizerException.cs
index d5b66938..cd2960fb 100644
--- a/Wino.Core.Domain/Exceptions/SynchronizerException.cs
+++ b/Wino.Core.Domain/Exceptions/SynchronizerException.cs
@@ -1,14 +1,15 @@
using System;
-namespace Wino.Core.Domain.Exceptions;
-
-public class SynchronizerException : Exception
+namespace Wino.Core.Domain.Exceptions
{
- public SynchronizerException(string message) : base(message)
+ public class SynchronizerException : Exception
{
- }
+ public SynchronizerException(string message) : base(message)
+ {
+ }
- public SynchronizerException(string message, Exception innerException) : base(message, innerException)
- {
+ public SynchronizerException(string message, Exception innerException) : base(message, innerException)
+ {
+ }
}
}
diff --git a/Wino.Core.Domain/Exceptions/SystemFolderConfigurationMissingException.cs b/Wino.Core.Domain/Exceptions/SystemFolderConfigurationMissingException.cs
index a49405c4..918aa253 100644
--- a/Wino.Core.Domain/Exceptions/SystemFolderConfigurationMissingException.cs
+++ b/Wino.Core.Domain/Exceptions/SystemFolderConfigurationMissingException.cs
@@ -1,6 +1,7 @@
-namespace Wino.Core.Domain.Exceptions;
-
-///
-/// When IMAP account's system folder configuration setup is not done yet.
-///
-public class SystemFolderConfigurationMissingException : System.Exception { }
+namespace Wino.Core.Domain.Exceptions
+{
+ ///
+ /// When IMAP account's system folder configuration setup is not done yet.
+ ///
+ public class SystemFolderConfigurationMissingException : System.Exception { }
+}
diff --git a/Wino.Core.Domain/Exceptions/UnavailableSpecialFolderException.cs b/Wino.Core.Domain/Exceptions/UnavailableSpecialFolderException.cs
index 81b17b44..9153cbaa 100644
--- a/Wino.Core.Domain/Exceptions/UnavailableSpecialFolderException.cs
+++ b/Wino.Core.Domain/Exceptions/UnavailableSpecialFolderException.cs
@@ -1,19 +1,20 @@
using System;
using Wino.Core.Domain.Enums;
-namespace Wino.Core.Domain.Exceptions;
-
-///
-/// Emitted when special folder is needed for an operation but it couldn't be found.
-///
-public class UnavailableSpecialFolderException : Exception
+namespace Wino.Core.Domain.Exceptions
{
- public UnavailableSpecialFolderException(SpecialFolderType specialFolderType, Guid accountId)
+ ///
+ /// Emitted when special folder is needed for an operation but it couldn't be found.
+ ///
+ public class UnavailableSpecialFolderException : Exception
{
- SpecialFolderType = specialFolderType;
- AccountId = accountId;
- }
+ public UnavailableSpecialFolderException(SpecialFolderType specialFolderType, Guid accountId)
+ {
+ SpecialFolderType = specialFolderType;
+ AccountId = accountId;
+ }
- public SpecialFolderType SpecialFolderType { get; }
- public Guid AccountId { get; set; }
+ public SpecialFolderType SpecialFolderType { get; }
+ public Guid AccountId { get; set; }
+ }
}
diff --git a/Wino.Core.Domain/Exceptions/WinoServerException.cs b/Wino.Core.Domain/Exceptions/WinoServerException.cs
index afa7f132..8cbf87d4 100644
--- a/Wino.Core.Domain/Exceptions/WinoServerException.cs
+++ b/Wino.Core.Domain/Exceptions/WinoServerException.cs
@@ -1,11 +1,12 @@
using System;
-namespace Wino.Core.Domain.Exceptions;
-
-///
-/// All server crash types. Wino Server ideally should not throw anything else than this Exception type.
-///
-public class WinoServerException : Exception
+namespace Wino.Core.Domain.Exceptions
{
- public WinoServerException(string message) : base(message) { }
+ ///
+ /// All server crash types. Wino Server ideally should not throw anything else than this Exception type.
+ ///
+ public class WinoServerException : Exception
+ {
+ public WinoServerException(string message) : base(message) { }
+ }
}
diff --git a/Wino.Core.Domain/Extensions/DateTimeExtensions.cs b/Wino.Core.Domain/Extensions/DateTimeExtensions.cs
index f026c80f..69c1b571 100644
--- a/Wino.Core.Domain/Extensions/DateTimeExtensions.cs
+++ b/Wino.Core.Domain/Extensions/DateTimeExtensions.cs
@@ -1,32 +1,33 @@
using System;
using Wino.Core.Domain.Models.Calendar;
-namespace Wino.Core.Domain.Extensions;
-
-public static class DateTimeExtensions
+namespace Wino.Core.Domain.Extensions
{
- ///
- /// Returns a date range for the month of the given date.
- ///
- /// Date to get range for.
- public static DateRange GetMonthDateRangeStartingWeekday(this DateTime date, DayOfWeek WeekStartDay)
+ public static class DateTimeExtensions
{
- DateTime firstDayOfMonth = new DateTime(date.Year, date.Month, 1);
+ ///
+ /// Returns a date range for the month of the given date.
+ ///
+ /// Date to get range for.
+ public static DateRange GetMonthDateRangeStartingWeekday(this DateTime date, DayOfWeek WeekStartDay)
+ {
+ DateTime firstDayOfMonth = new DateTime(date.Year, date.Month, 1);
- int daysToSubtract = (7 + (firstDayOfMonth.DayOfWeek - WeekStartDay)) % 7;
- DateTime rangeStart = firstDayOfMonth.AddDays(-daysToSubtract);
+ int daysToSubtract = (7 + (firstDayOfMonth.DayOfWeek - WeekStartDay)) % 7;
+ DateTime rangeStart = firstDayOfMonth.AddDays(-daysToSubtract);
- DateTime rangeEnd = rangeStart.AddDays(34);
+ DateTime rangeEnd = rangeStart.AddDays(34);
- return new DateRange(rangeStart, rangeEnd);
- }
+ return new DateRange(rangeStart, rangeEnd);
+ }
- public static DateTime GetWeekStartDateForDate(this DateTime date, DayOfWeek firstDayOfWeek)
- {
- // Detect the first day of the week that contains the selected date.
- int diff = (7 + (date.DayOfWeek - firstDayOfWeek)) % 7;
+ public static DateTime GetWeekStartDateForDate(this DateTime date, DayOfWeek firstDayOfWeek)
+ {
+ // Detect the first day of the week that contains the selected date.
+ int diff = (7 + (date.DayOfWeek - firstDayOfWeek)) % 7;
- // Start loading from this date instead of visible date.
- return date.AddDays(-diff).Date;
+ // Start loading from this date instead of visible date.
+ return date.AddDays(-diff).Date;
+ }
}
}
diff --git a/Wino.Core.Domain/Extensions/ExceptionExtensions.cs b/Wino.Core.Domain/Extensions/ExceptionExtensions.cs
index d7d62238..b42a0206 100644
--- a/Wino.Core.Domain/Extensions/ExceptionExtensions.cs
+++ b/Wino.Core.Domain/Extensions/ExceptionExtensions.cs
@@ -1,23 +1,24 @@
using System;
using System.Collections.Generic;
-namespace Wino.Core.Domain.Extensions;
-
-public static class ExceptionExtensions
+namespace Wino.Core.Domain.Extensions
{
- public static IEnumerable GetInnerExceptions(this Exception ex)
+ public static class ExceptionExtensions
{
- if (ex == null)
+ public static IEnumerable GetInnerExceptions(this Exception ex)
{
- throw new ArgumentNullException("ex");
- }
+ if (ex == null)
+ {
+ throw new ArgumentNullException("ex");
+ }
- var innerException = ex;
- do
- {
- yield return innerException;
- innerException = innerException.InnerException;
+ var innerException = ex;
+ do
+ {
+ yield return innerException;
+ innerException = innerException.InnerException;
+ }
+ while (innerException != null);
}
- while (innerException != null);
}
}
diff --git a/Wino.Core.Domain/Extensions/MimeExtensions.cs b/Wino.Core.Domain/Extensions/MimeExtensions.cs
index 98a9b0c9..1555e932 100644
--- a/Wino.Core.Domain/Extensions/MimeExtensions.cs
+++ b/Wino.Core.Domain/Extensions/MimeExtensions.cs
@@ -1,19 +1,20 @@
using System;
using System.IO;
-namespace Wino.Core.Domain.Extensions;
-
-public static class MimeExtensions
+namespace Wino.Core.Domain.Extensions
{
- public static string GetBase64MimeMessage(this MimeKit.MimeMessage message)
+ public static class MimeExtensions
{
- using MemoryStream memoryStream = new();
+ public static string GetBase64MimeMessage(this MimeKit.MimeMessage message)
+ {
+ using MemoryStream memoryStream = new();
- message.WriteTo(memoryStream);
+ message.WriteTo(memoryStream);
- return Convert.ToBase64String(memoryStream.ToArray());
+ return Convert.ToBase64String(memoryStream.ToArray());
+ }
+
+ public static MimeKit.MimeMessage GetMimeMessageFromBase64(this string base64)
+ => MimeKit.MimeMessage.Load(new System.IO.MemoryStream(Convert.FromBase64String(base64)));
}
-
- public static MimeKit.MimeMessage GetMimeMessageFromBase64(this string base64)
- => MimeKit.MimeMessage.Load(new System.IO.MemoryStream(Convert.FromBase64String(base64)));
}
diff --git a/Wino.Core.Domain/Interfaces/IAccountCalendar.cs b/Wino.Core.Domain/Interfaces/IAccountCalendar.cs
index 85a340c3..32c908cb 100644
--- a/Wino.Core.Domain/Interfaces/IAccountCalendar.cs
+++ b/Wino.Core.Domain/Interfaces/IAccountCalendar.cs
@@ -1,15 +1,16 @@
using System;
-namespace Wino.Core.Domain.Interfaces;
-
-public interface IAccountCalendar
+namespace Wino.Core.Domain.Interfaces
{
- string Name { get; set; }
- string TextColorHex { get; set; }
- string BackgroundColorHex { get; set; }
- bool IsPrimary { get; set; }
- Guid AccountId { get; set; }
- string RemoteCalendarId { get; set; }
- bool IsExtended { get; set; }
- Guid Id { get; set; }
+ public interface IAccountCalendar
+ {
+ string Name { get; set; }
+ string TextColorHex { get; set; }
+ string BackgroundColorHex { get; set; }
+ bool IsPrimary { get; set; }
+ Guid AccountId { get; set; }
+ string RemoteCalendarId { get; set; }
+ bool IsExtended { get; set; }
+ Guid Id { get; set; }
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/IAccountCreationDialog.cs b/Wino.Core.Domain/Interfaces/IAccountCreationDialog.cs
index 2cf94608..8454a4ed 100644
--- a/Wino.Core.Domain/Interfaces/IAccountCreationDialog.cs
+++ b/Wino.Core.Domain/Interfaces/IAccountCreationDialog.cs
@@ -2,11 +2,12 @@
using System.Threading.Tasks;
using Wino.Core.Domain.Enums;
-namespace Wino.Core.Domain.Interfaces;
-
-public interface IAccountCreationDialog
+namespace Wino.Core.Domain.Interfaces
{
- Task ShowDialogAsync(CancellationTokenSource cancellationTokenSource);
- void Complete(bool cancel);
- AccountCreationDialogState State { get; set; }
+ public interface IAccountCreationDialog
+ {
+ Task ShowDialogAsync(CancellationTokenSource cancellationTokenSource);
+ void Complete(bool cancel);
+ AccountCreationDialogState State { get; set; }
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/IAccountMenuItem.cs b/Wino.Core.Domain/Interfaces/IAccountMenuItem.cs
index b3a917bd..3faca7f0 100644
--- a/Wino.Core.Domain/Interfaces/IAccountMenuItem.cs
+++ b/Wino.Core.Domain/Interfaces/IAccountMenuItem.cs
@@ -2,20 +2,21 @@
using Wino.Core.Domain.Entities.Mail;
using Wino.Core.Domain.Entities.Shared;
-namespace Wino.Core.Domain.Interfaces;
-
-public interface IAccountMenuItem : IMenuItem
+namespace Wino.Core.Domain.Interfaces
{
- bool IsEnabled { get; set; }
- double SynchronizationProgress { get; set; }
- int UnreadItemCount { get; set; }
- IEnumerable HoldingAccounts { get; }
- void UpdateAccount(MailAccount account);
-}
+ public interface IAccountMenuItem : IMenuItem
+ {
+ bool IsEnabled { get; set; }
+ double SynchronizationProgress { get; set; }
+ int UnreadItemCount { get; set; }
+ IEnumerable HoldingAccounts { get; }
+ void UpdateAccount(MailAccount account);
+ }
-public interface IMergedAccountMenuItem : IAccountMenuItem
-{
- int MergedAccountCount { get; }
+ public interface IMergedAccountMenuItem : IAccountMenuItem
+ {
+ int MergedAccountCount { get; }
- MergedInbox Parameter { get; }
+ MergedInbox Parameter { get; }
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/IAccountPickerDialog.cs b/Wino.Core.Domain/Interfaces/IAccountPickerDialog.cs
index 52a0c33a..a43bbc26 100644
--- a/Wino.Core.Domain/Interfaces/IAccountPickerDialog.cs
+++ b/Wino.Core.Domain/Interfaces/IAccountPickerDialog.cs
@@ -1,5 +1,6 @@
-namespace Wino.Core.Domain.Interfaces;
-
-public interface IAccountPickerDialog
+namespace Wino.Core.Domain.Interfaces
{
+ public interface IAccountPickerDialog
+ {
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/IAccountProviderDetailViewModel.cs b/Wino.Core.Domain/Interfaces/IAccountProviderDetailViewModel.cs
index 2272974b..d4a9b279 100644
--- a/Wino.Core.Domain/Interfaces/IAccountProviderDetailViewModel.cs
+++ b/Wino.Core.Domain/Interfaces/IAccountProviderDetailViewModel.cs
@@ -1,37 +1,38 @@
using System;
-namespace Wino.Core.Domain.Interfaces;
-
-public interface IAccountProviderDetailViewModel
+namespace Wino.Core.Domain.Interfaces
{
- ///
- /// Entity id that will help to identify the startup entity on launch.
- ///
- Guid StartupEntityId { get; }
+ public interface IAccountProviderDetailViewModel
+ {
+ ///
+ /// Entity id that will help to identify the startup entity on launch.
+ ///
+ Guid StartupEntityId { get; }
- ///
- /// Name representation of the view model that will be used to identify the startup entity on launch.
- ///
- string StartupEntityTitle { get; }
+ ///
+ /// Name representation of the view model that will be used to identify the startup entity on launch.
+ ///
+ string StartupEntityTitle { get; }
- ///
- /// E-mail addresses that this account holds.
- ///
+ ///
+ /// E-mail addresses that this account holds.
+ ///
- string StartupEntityAddresses { get; }
+ string StartupEntityAddresses { get; }
- ///
- /// Represents the account order in the accounts list.
- ///
- int Order { get; }
+ ///
+ /// Represents the account order in the accounts list.
+ ///
+ int Order { get; }
- ///
- /// Provider details of the account.
- ///
- IProviderDetail ProviderDetail { get; set; }
+ ///
+ /// Provider details of the account.
+ ///
+ IProviderDetail ProviderDetail { get; set; }
- ///
- /// How many accounts this provider has.
- ///
- int HoldingAccountCount { get; }
+ ///
+ /// How many accounts this provider has.
+ ///
+ int HoldingAccountCount { get; }
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/IAccountProviderDetails.cs b/Wino.Core.Domain/Interfaces/IAccountProviderDetails.cs
index 66eb5b10..c5b7c5f5 100644
--- a/Wino.Core.Domain/Interfaces/IAccountProviderDetails.cs
+++ b/Wino.Core.Domain/Interfaces/IAccountProviderDetails.cs
@@ -1,10 +1,11 @@
using Wino.Core.Domain.Entities.Shared;
-namespace Wino.Core.Domain.Interfaces;
-
-public interface IAccountProviderDetails
+namespace Wino.Core.Domain.Interfaces
{
- MailAccount Account { get; set; }
- bool AutoExtend { get; set; }
- IProviderDetail ProviderDetail { get; set; }
+ public interface IAccountProviderDetails
+ {
+ MailAccount Account { get; set; }
+ bool AutoExtend { get; set; }
+ IProviderDetail ProviderDetail { get; set; }
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/IAccountService.cs b/Wino.Core.Domain/Interfaces/IAccountService.cs
index 338e4270..8a226f25 100644
--- a/Wino.Core.Domain/Interfaces/IAccountService.cs
+++ b/Wino.Core.Domain/Interfaces/IAccountService.cs
@@ -5,155 +5,156 @@ using Wino.Core.Domain.Entities.Mail;
using Wino.Core.Domain.Entities.Shared;
using Wino.Core.Domain.Models.Accounts;
-namespace Wino.Core.Domain.Interfaces;
-
-public interface IAccountService
+namespace Wino.Core.Domain.Interfaces
{
- ///
- /// Current IAuthenticator that should receive external authentication process to continue with.
- /// For example: Google auth will launch a browser authentication. After it completes, this is the IAuthenticator
- /// to continue process for token exchange.
- ///
- IAuthenticator ExternalAuthenticationAuthenticator { get; set; }
+ public interface IAccountService
+ {
+ ///
+ /// Current IAuthenticator that should receive external authentication process to continue with.
+ /// For example: Google auth will launch a browser authentication. After it completes, this is the IAuthenticator
+ /// to continue process for token exchange.
+ ///
+ IAuthenticator ExternalAuthenticationAuthenticator { get; set; }
- ///
- /// Returns all local accounts.
- ///
- /// All local accounts
- Task> GetAccountsAsync();
+ ///
+ /// Returns all local accounts.
+ ///
+ /// All local accounts
+ Task> GetAccountsAsync();
- ///
- /// Returns single MailAccount
- ///
- /// AccountId.
- Task GetAccountAsync(Guid accountId);
+ ///
+ /// Returns single MailAccount
+ ///
+ /// AccountId.
+ Task GetAccountAsync(Guid accountId);
- ///
- /// Deletes all information about the account, including token information.
- ///
- /// MailAccount to be removed
- Task DeleteAccountAsync(MailAccount account);
+ ///
+ /// Deletes all information about the account, including token information.
+ ///
+ /// MailAccount to be removed
+ Task DeleteAccountAsync(MailAccount account);
- ///
- /// Returns the custom server information for the given account id.
- ///
- Task GetAccountCustomServerInformationAsync(Guid accountId);
+ ///
+ /// Returns the custom server information for the given account id.
+ ///
+ Task GetAccountCustomServerInformationAsync(Guid accountId);
- ///
- /// Updates the given account properties.
- ///
- Task UpdateAccountAsync(MailAccount account);
+ ///
+ /// Updates the given account properties.
+ ///
+ Task UpdateAccountAsync(MailAccount account);
- ///
- /// Creates new account with the given server information if any.
- /// Also sets the account as Startup account if there are no accounts.
- ///
- Task CreateAccountAsync(MailAccount account, CustomServerInformation customServerInformation);
+ ///
+ /// Creates new account with the given server information if any.
+ /// Also sets the account as Startup account if there are no accounts.
+ ///
+ Task CreateAccountAsync(MailAccount account, CustomServerInformation customServerInformation);
- ///
- /// Fixed authentication errors for account by forcing interactive login.
- ///
- Task FixTokenIssuesAsync(Guid accountId);
+ ///
+ /// Fixed authentication errors for account by forcing interactive login.
+ ///
+ Task FixTokenIssuesAsync(Guid accountId);
- ///
- /// Removed the attention from an account.
- ///
- /// Account id to remove from
- Task ClearAccountAttentionAsync(Guid accountId);
+ ///
+ /// Removed the attention from an account.
+ ///
+ /// Account id to remove from
+ Task ClearAccountAttentionAsync(Guid accountId);
- ///
- /// Updates the account synchronization identifier.
- /// For example: Gmail uses this identifier to keep track of the last synchronization.
- /// Update is ignored for Gmail if the new identifier is older than the current one.
- ///
- /// Identifier to update
- /// Current account synchronization modifier.
- Task UpdateSynchronizationIdentifierAsync(Guid accountId, string newIdentifier);
+ ///
+ /// Updates the account synchronization identifier.
+ /// For example: Gmail uses this identifier to keep track of the last synchronization.
+ /// Update is ignored for Gmail if the new identifier is older than the current one.
+ ///
+ /// Identifier to update
+ /// Current account synchronization modifier.
+ Task UpdateSynchronizationIdentifierAsync(Guid accountId, string newIdentifier);
- ///
- /// Renames the merged inbox with the given id.
- ///
- /// Merged Inbox id
- /// New name for the merged/linked inbox.
- Task RenameMergedAccountAsync(Guid mergedInboxId, string newName);
+ ///
+ /// Renames the merged inbox with the given id.
+ ///
+ /// Merged Inbox id
+ /// New name for the merged/linked inbox.
+ Task RenameMergedAccountAsync(Guid mergedInboxId, string newName);
- ///
- /// Creates a new merged inbox with the given accounts.
- ///
- /// Merged inbox properties.
- /// List of accounts to merge together.
- Task CreateMergeAccountsAsync(MergedInbox mergedInbox, IEnumerable accountsToMerge);
+ ///
+ /// Creates a new merged inbox with the given accounts.
+ ///
+ /// Merged inbox properties.
+ /// List of accounts to merge together.
+ Task CreateMergeAccountsAsync(MergedInbox mergedInbox, IEnumerable accountsToMerge);
- ///
- /// Updates the merged inbox with the given id with the new linked accounts.
- ///
- /// Updating merged inbox id.
- /// List of linked account ids.
- Task UpdateMergedInboxAsync(Guid mergedInboxId, IEnumerable linkedAccountIds);
+ ///
+ /// Updates the merged inbox with the given id with the new linked accounts.
+ ///
+ /// Updating merged inbox id.
+ /// List of linked account ids.
+ Task UpdateMergedInboxAsync(Guid mergedInboxId, IEnumerable linkedAccountIds);
- ///
- /// Destroys the merged inbox with the given id.
- ///
- /// Merged inbox id to destroy.
- Task UnlinkMergedInboxAsync(Guid mergedInboxId);
+ ///
+ /// Destroys the merged inbox with the given id.
+ ///
+ /// Merged inbox id to destroy.
+ Task UnlinkMergedInboxAsync(Guid mergedInboxId);
- ///
- /// Updates the account listing orders.
- ///
- /// AccountId-OrderNumber pair for all accounts.
- Task UpdateAccountOrdersAsync(Dictionary accountIdOrderPair);
+ ///
+ /// Updates the account listing orders.
+ ///
+ /// AccountId-OrderNumber pair for all accounts.
+ Task UpdateAccountOrdersAsync(Dictionary accountIdOrderPair);
- ///
- /// Returns the account aliases.
- ///
- /// Account id.
- /// A list of MailAccountAlias that has e-mail aliases.
- Task> GetAccountAliasesAsync(Guid accountId);
+ ///
+ /// Returns the account aliases.
+ ///
+ /// Account id.
+ /// A list of MailAccountAlias that has e-mail aliases.
+ Task> GetAccountAliasesAsync(Guid accountId);
- ///
- /// Updated account's aliases.
- ///
- /// Account id to update aliases for.
- /// Full list of updated aliases.
- ///
- Task UpdateAccountAliasesAsync(Guid accountId, List aliases);
+ ///
+ /// Updated account's aliases.
+ ///
+ /// Account id to update aliases for.
+ /// Full list of updated aliases.
+ ///
+ Task UpdateAccountAliasesAsync(Guid accountId, List aliases);
- ///
- /// Delete account alias.
- ///
- /// Alias to remove.
- Task DeleteAccountAliasAsync(Guid aliasId);
+ ///
+ /// Delete account alias.
+ ///
+ /// Alias to remove.
+ Task DeleteAccountAliasAsync(Guid aliasId);
- ///
- /// Updated profile information of the account.
- ///
- /// Account id to update info for.
- /// Info data.
- ///
- Task UpdateProfileInformationAsync(Guid accountId, ProfileInformation profileInformation);
+ ///
+ /// Updated profile information of the account.
+ ///
+ /// Account id to update info for.
+ /// Info data.
+ ///
+ Task UpdateProfileInformationAsync(Guid accountId, ProfileInformation profileInformation);
- ///
- /// Creates a root + primary alias for the account.
- /// This is only called when the account is created.
- ///
- /// Account id.
- /// Address to create root primary alias from.
- Task CreateRootAliasAsync(Guid accountId, string address);
+ ///
+ /// Creates a root + primary alias for the account.
+ /// This is only called when the account is created.
+ ///
+ /// Account id.
+ /// Address to create root primary alias from.
+ Task CreateRootAliasAsync(Guid accountId, string address);
- ///
- /// Will compare local-remote aliases and update the local ones or add/delete new ones.
- ///
- /// Remotely fetched basic alias info from synchronizer.
- /// Account to update remote aliases for..
- Task UpdateRemoteAliasInformationAsync(MailAccount account, List remoteAccountAliases);
+ ///
+ /// Will compare local-remote aliases and update the local ones or add/delete new ones.
+ ///
+ /// Remotely fetched basic alias info from synchronizer.
+ /// Account to update remote aliases for..
+ Task UpdateRemoteAliasInformationAsync(MailAccount account, List remoteAccountAliases);
- ///
- /// Gets the primary account alias for the given account id.
- /// Used when creating draft messages.
- ///
- /// Account id.
- /// Primary alias for the account.
- Task GetPrimaryAccountAliasAsync(Guid accountId);
- Task IsAccountFocusedEnabledAsync(Guid accountId);
+ ///
+ /// Gets the primary account alias for the given account id.
+ /// Used when creating draft messages.
+ ///
+ /// Account id.
+ /// Primary alias for the account.
+ Task GetPrimaryAccountAliasAsync(Guid accountId);
+ Task IsAccountFocusedEnabledAsync(Guid accountId);
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/IApplicationConfiguration.cs b/Wino.Core.Domain/Interfaces/IApplicationConfiguration.cs
index a47bdca3..b87c0a56 100644
--- a/Wino.Core.Domain/Interfaces/IApplicationConfiguration.cs
+++ b/Wino.Core.Domain/Interfaces/IApplicationConfiguration.cs
@@ -1,26 +1,32 @@
-namespace Wino.Core.Domain.Interfaces;
-
-///
-/// Singleton object that holds the application data folder path and the publisher shared folder path.
-/// Load the values before calling any service.
-/// App data folder is used for storing files.
-/// Pubhlisher cache folder is only used for database file so other apps can access it in the same package by same publisher.
-///
-public interface IApplicationConfiguration
+namespace Wino.Core.Domain.Interfaces
{
///
- /// Application data folder.
+ /// Singleton object that holds the application data folder path and the publisher shared folder path.
+ /// Load the values before calling any service.
+ /// App data folder is used for storing files.
+ /// Pubhlisher cache folder is only used for database file so other apps can access it in the same package by same publisher.
///
- string ApplicationDataFolderPath { get; set; }
+ public interface IApplicationConfiguration
+ {
+ ///
+ /// Application data folder.
+ ///
+ string ApplicationDataFolderPath { get; set; }
- ///
- /// Publisher shared folder path.
- ///
- string PublisherSharedFolderPath { get; set; }
+ ///
+ /// Publisher shared folder path.
+ ///
+ string PublisherSharedFolderPath { get; set; }
- ///
- /// Temp folder path of the application.
- /// Files here are short-lived and can be deleted by system.
- ///
- string ApplicationTempFolderPath { get; set; }
+ ///
+ /// Temp folder path of the application.
+ /// Files here are short-lived and can be deleted by system.
+ ///
+ string ApplicationTempFolderPath { get; set; }
+
+ ///
+ /// Application insights instrumentation key.
+ ///
+ string ApplicationInsightsInstrumentationKey { get; }
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/IApplicationResourceManager.cs b/Wino.Core.Domain/Interfaces/IApplicationResourceManager.cs
index f0a8f1dc..b96edb7c 100644
--- a/Wino.Core.Domain/Interfaces/IApplicationResourceManager.cs
+++ b/Wino.Core.Domain/Interfaces/IApplicationResourceManager.cs
@@ -1,11 +1,12 @@
-namespace Wino.Core.Domain.Interfaces;
-
-public interface IApplicationResourceManager
+namespace Wino.Core.Domain.Interfaces
{
- void RemoveResource(T resource);
- void AddResource(T resource);
- bool ContainsResourceKey(string resourceKey);
- void ReplaceResource(string resourceKey, object resource);
- T GetLastResource();
- TReturnType GetResource(string resourceKey);
+ public interface IApplicationResourceManager
+ {
+ void RemoveResource(T resource);
+ void AddResource(T resource);
+ bool ContainsResourceKey(string resourceKey);
+ void ReplaceResource(string resourceKey, object resource);
+ T GetLastResource();
+ TReturnType GetResource(string resourceKey);
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/IAuthenticationProvider.cs b/Wino.Core.Domain/Interfaces/IAuthenticationProvider.cs
index 652ac62b..49390dcb 100644
--- a/Wino.Core.Domain/Interfaces/IAuthenticationProvider.cs
+++ b/Wino.Core.Domain/Interfaces/IAuthenticationProvider.cs
@@ -1,8 +1,9 @@
using Wino.Core.Domain.Enums;
-namespace Wino.Core.Domain.Interfaces;
-
-public interface IAuthenticationProvider
+namespace Wino.Core.Domain.Interfaces
{
- IAuthenticator GetAuthenticator(MailProviderType providerType);
+ public interface IAuthenticationProvider
+ {
+ IAuthenticator GetAuthenticator(MailProviderType providerType);
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/IAuthenticator.cs b/Wino.Core.Domain/Interfaces/IAuthenticator.cs
index 837b99f9..86d2f8b4 100644
--- a/Wino.Core.Domain/Interfaces/IAuthenticator.cs
+++ b/Wino.Core.Domain/Interfaces/IAuthenticator.cs
@@ -3,36 +3,37 @@ using Wino.Core.Domain.Entities.Shared;
using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Models.Authentication;
-namespace Wino.Core.Domain.Interfaces;
-
-public interface IAuthenticator
+namespace Wino.Core.Domain.Interfaces
{
- ///
- /// Type of the provider.
- ///
- MailProviderType ProviderType { get; }
+ public interface IAuthenticator
+ {
+ ///
+ /// Type of the provider.
+ ///
+ MailProviderType ProviderType { get; }
- Task GetTokenInformationAsync(MailAccount account);
+ Task GetTokenInformationAsync(MailAccount account);
- Task GenerateTokenInformationAsync(MailAccount account);
+ Task GenerateTokenInformationAsync(MailAccount account);
- /////
- ///// Gets the token for the given account from the cache.
- ///// Forces interactive login if the token is not found.
- /////
- ///// Account to get access token for.
- ///// Access token
- //Task GetTokenAsync(MailAccount account);
+ /////
+ ///// Gets the token for the given account from the cache.
+ ///// Forces interactive login if the token is not found.
+ /////
+ ///// Account to get access token for.
+ ///// Access token
+ //Task GetTokenAsync(MailAccount account);
- /////
- ///// Forces an interactive login to get the token for the given account.
- /////
- ///// Account to get access token for.
- ///// Access token
- //// Task GenerateTokenAsync(MailAccount account);
+ /////
+ ///// Forces an interactive login to get the token for the given account.
+ /////
+ ///// Account to get access token for.
+ ///// Access token
+ //// Task GenerateTokenAsync(MailAccount account);
- /////
- ///// ClientId in case of needed for authorization/authentication.
- /////
- //string ClientId { get; }
+ /////
+ ///// ClientId in case of needed for authorization/authentication.
+ /////
+ //string ClientId { get; }
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/IAuthenticatorConfig.cs b/Wino.Core.Domain/Interfaces/IAuthenticatorConfig.cs
index a867fee7..1f154727 100644
--- a/Wino.Core.Domain/Interfaces/IAuthenticatorConfig.cs
+++ b/Wino.Core.Domain/Interfaces/IAuthenticatorConfig.cs
@@ -1,10 +1,11 @@
-namespace Wino.Core.Domain.Interfaces;
-
-public interface IAuthenticatorConfig
+namespace Wino.Core.Domain.Interfaces
{
- string OutlookAuthenticatorClientId { get; }
- string[] OutlookScope { get; }
- string GmailAuthenticatorClientId { get; }
- string[] GmailScope { get; }
- string GmailTokenStoreIdentifier { get; }
+ public interface IAuthenticatorConfig
+ {
+ string OutlookAuthenticatorClientId { get; }
+ string[] OutlookScope { get; }
+ string GmailAuthenticatorClientId { get; }
+ string[] GmailScope { get; }
+ string GmailTokenStoreIdentifier { get; }
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/IAuthenticatorTypes.cs b/Wino.Core.Domain/Interfaces/IAuthenticatorTypes.cs
index a6d25aff..ef842706 100644
--- a/Wino.Core.Domain/Interfaces/IAuthenticatorTypes.cs
+++ b/Wino.Core.Domain/Interfaces/IAuthenticatorTypes.cs
@@ -1,9 +1,10 @@
-namespace Wino.Core.Domain.Interfaces;
-
-public interface IOutlookAuthenticator : IAuthenticator { }
-public interface IGmailAuthenticator : IAuthenticator
+namespace Wino.Core.Domain.Interfaces
{
- bool ProposeCopyAuthURL { get; set; }
-}
+ public interface IOutlookAuthenticator : IAuthenticator { }
+ public interface IGmailAuthenticator : IAuthenticator
+ {
+ bool ProposeCopyAuthURL { get; set; }
+ }
-public interface IImapAuthenticator : IAuthenticator { }
+ public interface IImapAuthenticator : IAuthenticator { }
+}
diff --git a/Wino.Core.Domain/Interfaces/IAutoDiscoveryService.cs b/Wino.Core.Domain/Interfaces/IAutoDiscoveryService.cs
index 0ba6642a..6886022d 100644
--- a/Wino.Core.Domain/Interfaces/IAutoDiscoveryService.cs
+++ b/Wino.Core.Domain/Interfaces/IAutoDiscoveryService.cs
@@ -1,17 +1,18 @@
using System.Threading.Tasks;
using Wino.Core.Domain.Models.AutoDiscovery;
-namespace Wino.Core.Domain.Interfaces;
-
-///
-/// Searches for Auto Discovery settings for custom mail accounts.
-///
-public interface IAutoDiscoveryService
+namespace Wino.Core.Domain.Interfaces
{
///
- /// Tries to return the best mail server settings using different techniques.
+ /// Searches for Auto Discovery settings for custom mail accounts.
///
- /// Address to search settings for.
- /// CustomServerInformation with only settings applied.
- Task GetAutoDiscoverySettings(AutoDiscoveryMinimalSettings autoDiscoveryMinimalSettings);
+ public interface IAutoDiscoveryService
+ {
+ ///
+ /// Tries to return the best mail server settings using different techniques.
+ ///
+ /// Address to search settings for.
+ /// CustomServerInformation with only settings applied.
+ Task GetAutoDiscoverySettings(AutoDiscoveryMinimalSettings autoDiscoveryMinimalSettings);
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/IBackgroundTaskService.cs b/Wino.Core.Domain/Interfaces/IBackgroundTaskService.cs
index 651ee659..53fb80b3 100644
--- a/Wino.Core.Domain/Interfaces/IBackgroundTaskService.cs
+++ b/Wino.Core.Domain/Interfaces/IBackgroundTaskService.cs
@@ -1,17 +1,18 @@
using System.Threading.Tasks;
-namespace Wino.Core.Domain.Interfaces;
-
-public interface IBackgroundTaskService
+namespace Wino.Core.Domain.Interfaces
{
- ///
- /// Unregisters all background tasks once.
- /// This is used to clean up the background tasks when the app is updated.
- ///
- void UnregisterAllBackgroundTask();
+ public interface IBackgroundTaskService
+ {
+ ///
+ /// Unregisters all background tasks once.
+ /// This is used to clean up the background tasks when the app is updated.
+ ///
+ void UnregisterAllBackgroundTask();
- ///
- /// Registers required background tasks.
- ///
- Task RegisterBackgroundTasksAsync();
+ ///
+ /// Registers required background tasks.
+ ///
+ Task RegisterBackgroundTasksAsync();
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/IBaseSynchronizer.cs b/Wino.Core.Domain/Interfaces/IBaseSynchronizer.cs
index 00f2f406..09e2b402 100644
--- a/Wino.Core.Domain/Interfaces/IBaseSynchronizer.cs
+++ b/Wino.Core.Domain/Interfaces/IBaseSynchronizer.cs
@@ -3,30 +3,31 @@ using Wino.Core.Domain.Entities.Shared;
using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Models.Accounts;
-namespace Wino.Core.Domain.Interfaces;
-
-public interface IBaseSynchronizer
+namespace Wino.Core.Domain.Interfaces
{
- ///
- /// Account that is assigned for this synchronizer.
- ///
- MailAccount Account { get; }
+ public interface IBaseSynchronizer
+ {
+ ///
+ /// Account that is assigned for this synchronizer.
+ ///
+ MailAccount Account { get; }
- ///
- /// Synchronizer state.
- ///
- AccountSynchronizerState State { get; }
+ ///
+ /// Synchronizer state.
+ ///
+ AccountSynchronizerState State { get; }
- ///
- /// Queues a single request to be executed in the next synchronization.
- ///
- /// Request to queue.
- void QueueRequest(IRequestBase request);
+ ///
+ /// Queues a single request to be executed in the next synchronization.
+ ///
+ /// Request to queue.
+ void QueueRequest(IRequestBase request);
- ///
- /// Synchronizes profile information with the server.
- /// Sender name and Profile picture are updated.
- ///
- /// Profile information model that holds the values.
- Task GetProfileInformationAsync();
+ ///
+ /// Synchronizes profile information with the server.
+ /// Sender name and Profile picture are updated.
+ ///
+ /// Profile information model that holds the values.
+ Task GetProfileInformationAsync();
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/ICalendarDialogService.cs b/Wino.Core.Domain/Interfaces/ICalendarDialogService.cs
index 7b48f868..023d9eaf 100644
--- a/Wino.Core.Domain/Interfaces/ICalendarDialogService.cs
+++ b/Wino.Core.Domain/Interfaces/ICalendarDialogService.cs
@@ -1,5 +1,6 @@
-namespace Wino.Core.Domain.Interfaces;
-
-public interface ICalendarDialogService : IDialogServiceBase
+namespace Wino.Core.Domain.Interfaces
{
+ public interface ICalendarDialogService : IDialogServiceBase
+ {
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/ICalendarItem.cs b/Wino.Core.Domain/Interfaces/ICalendarItem.cs
index e83827a6..815b4a22 100644
--- a/Wino.Core.Domain/Interfaces/ICalendarItem.cs
+++ b/Wino.Core.Domain/Interfaces/ICalendarItem.cs
@@ -1,22 +1,23 @@
using System;
using Itenso.TimePeriod;
-namespace Wino.Core.Domain.Interfaces;
-
-public interface ICalendarItem
+namespace Wino.Core.Domain.Interfaces
{
- string Title { get; }
- Guid Id { get; }
- IAccountCalendar AssignedCalendar { get; }
- DateTime StartDate { get; set; }
- DateTime EndDate { get; }
- double DurationInSeconds { get; set; }
- ITimePeriod Period { get; }
+ public interface ICalendarItem
+ {
+ string Title { get; }
+ Guid Id { get; }
+ IAccountCalendar AssignedCalendar { get; }
+ DateTime StartDate { get; set; }
+ DateTime EndDate { get; }
+ double DurationInSeconds { get; set; }
+ ITimePeriod Period { get; }
- bool IsAllDayEvent { get; }
- bool IsMultiDayEvent { get; }
+ bool IsAllDayEvent { get; }
+ bool IsMultiDayEvent { get; }
- bool IsRecurringChild { get; }
- bool IsRecurringParent { get; }
- bool IsRecurringEvent { get; }
+ bool IsRecurringChild { get; }
+ bool IsRecurringParent { get; }
+ bool IsRecurringEvent { get; }
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/ICalendarItemViewModel.cs b/Wino.Core.Domain/Interfaces/ICalendarItemViewModel.cs
index 3eaf1ff7..6c2a4de6 100644
--- a/Wino.Core.Domain/Interfaces/ICalendarItemViewModel.cs
+++ b/Wino.Core.Domain/Interfaces/ICalendarItemViewModel.cs
@@ -1,9 +1,10 @@
-namespace Wino.Core.Domain.Interfaces;
-
-///
-/// Temporarily to enforce CalendarItemViewModel. Used in CalendarEventCollection.
-///
-public interface ICalendarItemViewModel
+namespace Wino.Core.Domain.Interfaces
{
- bool IsSelected { get; set; }
+ ///
+ /// Temporarily to enforce CalendarItemViewModel. Used in CalendarEventCollection.
+ ///
+ public interface ICalendarItemViewModel
+ {
+ bool IsSelected { get; set; }
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/ICalendarService.cs b/Wino.Core.Domain/Interfaces/ICalendarService.cs
index f0e18b4a..6c4a93f3 100644
--- a/Wino.Core.Domain/Interfaces/ICalendarService.cs
+++ b/Wino.Core.Domain/Interfaces/ICalendarService.cs
@@ -4,28 +4,29 @@ using System.Threading.Tasks;
using Wino.Core.Domain.Entities.Calendar;
using Wino.Core.Domain.Models.Calendar;
-namespace Wino.Core.Domain.Interfaces;
-
-public interface ICalendarService
+namespace Wino.Core.Domain.Interfaces
{
- Task> GetAccountCalendarsAsync(Guid accountId);
- Task GetAccountCalendarAsync(Guid accountCalendarId);
- Task DeleteCalendarItemAsync(Guid calendarItemId);
+ public interface ICalendarService
+ {
+ Task> GetAccountCalendarsAsync(Guid accountId);
+ Task GetAccountCalendarAsync(Guid accountCalendarId);
+ Task DeleteCalendarItemAsync(Guid calendarItemId);
- Task DeleteAccountCalendarAsync(AccountCalendar accountCalendar);
- Task InsertAccountCalendarAsync(AccountCalendar accountCalendar);
- Task UpdateAccountCalendarAsync(AccountCalendar accountCalendar);
- Task CreateNewCalendarItemAsync(CalendarItem calendarItem, List attendees);
- Task> GetCalendarEventsAsync(IAccountCalendar calendar, DayRangeRenderModel dayRangeRenderModel);
- Task GetCalendarItemAsync(Guid accountCalendarId, string remoteEventId);
- Task UpdateCalendarDeltaSynchronizationToken(Guid calendarId, string deltaToken);
+ Task DeleteAccountCalendarAsync(AccountCalendar accountCalendar);
+ Task InsertAccountCalendarAsync(AccountCalendar accountCalendar);
+ Task UpdateAccountCalendarAsync(AccountCalendar accountCalendar);
+ Task CreateNewCalendarItemAsync(CalendarItem calendarItem, List attendees);
+ Task> GetCalendarEventsAsync(IAccountCalendar calendar, DayRangeRenderModel dayRangeRenderModel);
+ Task GetCalendarItemAsync(Guid accountCalendarId, string remoteEventId);
+ Task UpdateCalendarDeltaSynchronizationToken(Guid calendarId, string deltaToken);
- ///
- /// Returns the correct calendar item based on the target details.
- ///
- /// Target details.
- Task GetCalendarItemTargetAsync(CalendarItemTarget targetDetails);
- Task GetCalendarItemAsync(Guid id);
- Task> GetAttendeesAsync(Guid calendarEventTrackingId);
- Task> ManageEventAttendeesAsync(Guid calendarItemId, List allAttendees);
+ ///
+ /// Returns the correct calendar item based on the target details.
+ ///
+ /// Target details.
+ Task GetCalendarItemTargetAsync(CalendarItemTarget targetDetails);
+ Task GetCalendarItemAsync(Guid id);
+ Task> GetAttendeesAsync(Guid calendarEventTrackingId);
+ Task> ManageEventAttendeesAsync(Guid calendarItemId, List allAttendees);
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/IClientMessage.cs b/Wino.Core.Domain/Interfaces/IClientMessage.cs
index 9dd64bca..5244059e 100644
--- a/Wino.Core.Domain/Interfaces/IClientMessage.cs
+++ b/Wino.Core.Domain/Interfaces/IClientMessage.cs
@@ -1,7 +1,8 @@
-namespace Wino.Core.Domain.Interfaces;
-
-///
-/// All messages that Client sends to Server and awaits a response in return.
-/// For example; triggering a new synchronization request.
-///
-public interface IClientMessage;
+namespace Wino.Core.Domain.Interfaces
+{
+ ///
+ /// All messages that Client sends to Server and awaits a response in return.
+ /// For example; triggering a new synchronization request.
+ ///
+ public interface IClientMessage;
+}
diff --git a/Wino.Core.Domain/Interfaces/IClipboardService.cs b/Wino.Core.Domain/Interfaces/IClipboardService.cs
index ef2ab61a..f5bb4782 100644
--- a/Wino.Core.Domain/Interfaces/IClipboardService.cs
+++ b/Wino.Core.Domain/Interfaces/IClipboardService.cs
@@ -1,8 +1,9 @@
using System.Threading.Tasks;
-namespace Wino.Core.Domain.Interfaces;
-
-public interface IClipboardService
+namespace Wino.Core.Domain.Interfaces
{
- Task CopyClipboardAsync(string text);
+ public interface IClipboardService
+ {
+ Task CopyClipboardAsync(string text);
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/IConfigurationService.cs b/Wino.Core.Domain/Interfaces/IConfigurationService.cs
index a32410d6..c08c463c 100644
--- a/Wino.Core.Domain/Interfaces/IConfigurationService.cs
+++ b/Wino.Core.Domain/Interfaces/IConfigurationService.cs
@@ -1,10 +1,11 @@
-namespace Wino.Core.Domain.Interfaces;
-
-public interface IConfigurationService
+namespace Wino.Core.Domain.Interfaces
{
- void Set(string key, object value);
- T Get(string key, T defaultValue = default);
+ public interface IConfigurationService
+ {
+ void Set(string key, object value);
+ T Get(string key, T defaultValue = default);
- void SetRoaming(string key, object value);
- T GetRoaming(string key, T defaultValue = default);
+ void SetRoaming(string key, object value);
+ T GetRoaming(string key, T defaultValue = default);
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/IContactService.cs b/Wino.Core.Domain/Interfaces/IContactService.cs
index e721ec2a..e9e1df7d 100644
--- a/Wino.Core.Domain/Interfaces/IContactService.cs
+++ b/Wino.Core.Domain/Interfaces/IContactService.cs
@@ -3,12 +3,13 @@ using System.Threading.Tasks;
using MimeKit;
using Wino.Core.Domain.Entities.Shared;
-namespace Wino.Core.Domain.Interfaces;
-
-public interface IContactService
+namespace Wino.Core.Domain.Interfaces
{
- Task> GetAddressInformationAsync(string queryText);
- Task GetAddressInformationByAddressAsync(string address);
- Task SaveAddressInformationAsync(MimeMessage message);
- Task CreateNewContactAsync(string address, string displayName);
+ public interface IContactService
+ {
+ Task> GetAddressInformationAsync(string queryText);
+ Task GetAddressInformationByAddressAsync(string address);
+ Task SaveAddressInformationAsync(MimeMessage message);
+ Task CreateNewContactAsync(string address, string displayName);
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/IContextMenuItemService.cs b/Wino.Core.Domain/Interfaces/IContextMenuItemService.cs
index c3b1c54d..06d91240 100644
--- a/Wino.Core.Domain/Interfaces/IContextMenuItemService.cs
+++ b/Wino.Core.Domain/Interfaces/IContextMenuItemService.cs
@@ -3,11 +3,12 @@ using Wino.Core.Domain.Models.Folders;
using Wino.Core.Domain.Models.MailItem;
using Wino.Core.Domain.Models.Menus;
-namespace Wino.Core.Domain.Interfaces;
-
-public interface IContextMenuItemService
+namespace Wino.Core.Domain.Interfaces
{
- IEnumerable GetFolderContextMenuActions(IBaseFolderMenuItem folderInformation);
- IEnumerable GetMailItemContextMenuActions(IEnumerable selectedMailItems);
- IEnumerable GetMailItemRenderMenuActions(IMailItem mailItem, bool isDarkEditor);
+ public interface IContextMenuItemService
+ {
+ IEnumerable GetFolderContextMenuActions(IBaseFolderMenuItem folderInformation);
+ IEnumerable GetMailItemContextMenuActions(IEnumerable selectedMailItems);
+ IEnumerable GetMailItemRenderMenuActions(IMailItem mailItem, bool isDarkEditor);
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/IContextMenuProvider.cs b/Wino.Core.Domain/Interfaces/IContextMenuProvider.cs
index 7e7ef089..968b2c2c 100644
--- a/Wino.Core.Domain/Interfaces/IContextMenuProvider.cs
+++ b/Wino.Core.Domain/Interfaces/IContextMenuProvider.cs
@@ -3,27 +3,28 @@ using Wino.Core.Domain.Models.Folders;
using Wino.Core.Domain.Models.MailItem;
using Wino.Core.Domain.Models.Menus;
-namespace Wino.Core.Domain.Interfaces;
-
-public interface IContextMenuProvider
+namespace Wino.Core.Domain.Interfaces
{
- ///
- /// Calculates and returns available folder operations for the given folder.
- ///
- /// Folder to get actions for.
- IEnumerable GetFolderContextMenuActions(IMailItemFolder folderInformation);
+ public interface IContextMenuProvider
+ {
+ ///
+ /// Calculates and returns available folder operations for the given folder.
+ ///
+ /// Folder to get actions for.
+ IEnumerable GetFolderContextMenuActions(IMailItemFolder folderInformation);
- ///
- /// Calculates and returns available context menu items for selected mail items.
- ///
- /// Current folder that asks for the menu items.
- /// Selected menu items in the given folder.
- IEnumerable GetMailItemContextMenuActions(IMailItemFolder folderInformation, IEnumerable selectedMailItems);
+ ///
+ /// Calculates and returns available context menu items for selected mail items.
+ ///
+ /// Current folder that asks for the menu items.
+ /// Selected menu items in the given folder.
+ IEnumerable GetMailItemContextMenuActions(IMailItemFolder folderInformation, IEnumerable selectedMailItems);
- ///
- /// Calculates and returns available mail operations for mail rendering CommandBar.
- ///
- /// Rendered mail item.
- /// Folder that mail item belongs to.
- IEnumerable GetMailItemRenderMenuActions(IMailItem mailItem, IMailItemFolder activeFolder, bool isDarkEditor);
+ ///
+ /// Calculates and returns available mail operations for mail rendering CommandBar.
+ ///
+ /// Rendered mail item.
+ /// Folder that mail item belongs to.
+ IEnumerable GetMailItemRenderMenuActions(IMailItem mailItem, IMailItemFolder activeFolder, bool isDarkEditor);
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/ICreateAccountAliasDialog.cs b/Wino.Core.Domain/Interfaces/ICreateAccountAliasDialog.cs
index d787fe3d..35341304 100644
--- a/Wino.Core.Domain/Interfaces/ICreateAccountAliasDialog.cs
+++ b/Wino.Core.Domain/Interfaces/ICreateAccountAliasDialog.cs
@@ -1,8 +1,9 @@
using Wino.Core.Domain.Entities.Mail;
-namespace Wino.Core.Domain.Interfaces;
-
-public interface ICreateAccountAliasDialog
+namespace Wino.Core.Domain.Interfaces
{
- public MailAccountAlias CreatedAccountAlias { get; set; }
+ public interface ICreateAccountAliasDialog
+ {
+ public MailAccountAlias CreatedAccountAlias { get; set; }
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/ICustomFolderSynchronizationRequest.cs b/Wino.Core.Domain/Interfaces/ICustomFolderSynchronizationRequest.cs
index ae756a92..36c90040 100644
--- a/Wino.Core.Domain/Interfaces/ICustomFolderSynchronizationRequest.cs
+++ b/Wino.Core.Domain/Interfaces/ICustomFolderSynchronizationRequest.cs
@@ -1,21 +1,22 @@
using System;
using System.Collections.Generic;
-namespace Wino.Core.Domain.Interfaces;
-
-///
-/// An interface that should force synchronizer to do synchronization for only given folder ids
-/// after the execution is completed.
-///
-public interface ICustomFolderSynchronizationRequest
+namespace Wino.Core.Domain.Interfaces
{
///
- /// Which folders to sync after this operation?
+ /// An interface that should force synchronizer to do synchronization for only given folder ids
+ /// after the execution is completed.
///
- List SynchronizationFolderIds { get; }
+ public interface ICustomFolderSynchronizationRequest
+ {
+ ///
+ /// Which folders to sync after this operation?
+ ///
+ List SynchronizationFolderIds { get; }
- ///
- /// If true, additional folders like Sent, Drafts and Deleted will not be synchronized
- ///
- bool ExcludeMustHaveFolders { get; }
+ ///
+ /// If true, additional folders like Sent, Drafts and Deleted will not be synchronized
+ ///
+ bool ExcludeMustHaveFolders { get; }
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/IDialogServiceBase.cs b/Wino.Core.Domain/Interfaces/IDialogServiceBase.cs
index ba2cbf0b..42789f42 100644
--- a/Wino.Core.Domain/Interfaces/IDialogServiceBase.cs
+++ b/Wino.Core.Domain/Interfaces/IDialogServiceBase.cs
@@ -6,28 +6,29 @@ using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Models.Accounts;
using Wino.Core.Domain.Models.Common;
-namespace Wino.Core.Domain.Interfaces;
-
-public interface IDialogServiceBase
+namespace Wino.Core.Domain.Interfaces
{
- Task PickWindowsFolderAsync();
- Task PickWindowsFileContentAsync(params object[] typeFilters);
- Task ShowConfirmationDialogAsync(string question, string title, string confirmationButtonTitle);
- Task ShowMessageAsync(string message, string title, WinoCustomMessageDialogIcon icon);
- void InfoBarMessage(string title, string message, InfoBarMessageType messageType);
- void InfoBarMessage(string title, string message, InfoBarMessageType messageType, string actionButtonText, Action action);
- void ShowNotSupportedMessage();
- Task ShowEditAccountDialogAsync(MailAccount account);
- Task ShowTextInputDialogAsync(string currentInput, string dialogTitle, string dialogDescription, string primaryButtonText);
- Task ShowWinoCustomMessageDialogAsync(string title,
- string description,
- string approveButtonText,
- WinoCustomMessageDialogIcon? icon,
- string cancelButtonText = "",
- string dontAskAgainConfigurationKey = "");
- Task ShowCustomThemeBuilderDialogAsync();
- Task ShowAccountProviderSelectionDialogAsync(List availableProviders);
- IAccountCreationDialog GetAccountCreationDialog(AccountCreationDialogResult accountCreationDialogResult);
- Task> PickFilesAsync(params object[] typeFilters);
- Task PickFilePathAsync(string saveFileName);
+ public interface IDialogServiceBase
+ {
+ Task PickWindowsFolderAsync();
+ Task PickWindowsFileContentAsync(params object[] typeFilters);
+ Task ShowConfirmationDialogAsync(string question, string title, string confirmationButtonTitle);
+ Task ShowMessageAsync(string message, string title, WinoCustomMessageDialogIcon icon);
+ void InfoBarMessage(string title, string message, InfoBarMessageType messageType);
+ void InfoBarMessage(string title, string message, InfoBarMessageType messageType, string actionButtonText, Action action);
+ void ShowNotSupportedMessage();
+ Task ShowEditAccountDialogAsync(MailAccount account);
+ Task ShowTextInputDialogAsync(string currentInput, string dialogTitle, string dialogDescription, string primaryButtonText);
+ Task ShowWinoCustomMessageDialogAsync(string title,
+ string description,
+ string approveButtonText,
+ WinoCustomMessageDialogIcon? icon,
+ string cancelButtonText = "",
+ string dontAskAgainConfigurationKey = "");
+ Task ShowCustomThemeBuilderDialogAsync();
+ Task ShowAccountProviderSelectionDialogAsync(List availableProviders);
+ IAccountCreationDialog GetAccountCreationDialog(AccountCreationDialogResult accountCreationDialogResult);
+ Task> PickFilesAsync(params object[] typeFilters);
+ Task PickFilePathAsync(string saveFileName);
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/IDispatcher.cs b/Wino.Core.Domain/Interfaces/IDispatcher.cs
index b6fb1dd3..0eb9f08b 100644
--- a/Wino.Core.Domain/Interfaces/IDispatcher.cs
+++ b/Wino.Core.Domain/Interfaces/IDispatcher.cs
@@ -1,9 +1,10 @@
using System;
using System.Threading.Tasks;
-namespace Wino.Core.Domain.Interfaces;
-
-public interface IDispatcher
+namespace Wino.Core.Domain.Interfaces
{
- Task ExecuteOnUIThread(Action action);
+ public interface IDispatcher
+ {
+ Task ExecuteOnUIThread(Action action);
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/IFileService.cs b/Wino.Core.Domain/Interfaces/IFileService.cs
index 6b47a99c..6fbe5d96 100644
--- a/Wino.Core.Domain/Interfaces/IFileService.cs
+++ b/Wino.Core.Domain/Interfaces/IFileService.cs
@@ -1,19 +1,20 @@
using System.IO;
using System.Threading.Tasks;
-namespace Wino.Core.Domain.Interfaces;
-
-public interface IFileService
+namespace Wino.Core.Domain.Interfaces
{
- Task CopyFileAsync(string sourceFilePath, string destinationFolderPath);
- Task GetFileStreamAsync(string folderPath, string fileName);
- Task GetFileContentByApplicationUriAsync(string resourcePath);
+ public interface IFileService
+ {
+ Task CopyFileAsync(string sourceFilePath, string destinationFolderPath);
+ Task GetFileStreamAsync(string folderPath, string fileName);
+ Task GetFileContentByApplicationUriAsync(string resourcePath);
- ///
- /// Zips all existing logs and saves to picked destination folder.
- ///
- /// Folder path where logs are stored.
- /// Target path to save the archive file.
- /// True if zip is created with at least one item, false if logs are not found.
- Task SaveLogsToFolderAsync(string logsFolder, string destinationFolder);
+ ///
+ /// Zips all existing logs and saves to picked destination folder.
+ ///
+ /// Folder path where logs are stored.
+ /// Target path to save the archive file.
+ /// True if zip is created with at least one item, false if logs are not found.
+ Task SaveLogsToFolderAsync(string logsFolder, string destinationFolder);
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/IFolderMenuItem.cs b/Wino.Core.Domain/Interfaces/IFolderMenuItem.cs
index 7deff38d..6c1fdf33 100644
--- a/Wino.Core.Domain/Interfaces/IFolderMenuItem.cs
+++ b/Wino.Core.Domain/Interfaces/IFolderMenuItem.cs
@@ -3,29 +3,30 @@ using Wino.Core.Domain.Entities.Shared;
using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Models.Folders;
-namespace Wino.Core.Domain.Interfaces;
-
-public interface IFolderMenuItem : IBaseFolderMenuItem
+namespace Wino.Core.Domain.Interfaces
{
- MailAccount ParentAccount { get; }
- void UpdateParentAccounnt(MailAccount account);
-}
-
-public interface IMergedAccountFolderMenuItem : IBaseFolderMenuItem { }
-
-public interface IBaseFolderMenuItem : IMenuItem
-{
- string FolderName { get; }
- bool IsSynchronizationEnabled { get; }
- int UnreadItemCount { get; set; }
- SpecialFolderType SpecialFolderType { get; }
- IEnumerable HandlingFolders { get; }
- IEnumerable SubMenuItems { get; }
- bool IsMoveTarget { get; }
- bool IsSticky { get; }
- bool IsSystemFolder { get; }
- bool ShowUnreadCount { get; }
- string AssignedAccountName { get; }
-
- void UpdateFolder(IMailItemFolder folder);
+ public interface IFolderMenuItem : IBaseFolderMenuItem
+ {
+ MailAccount ParentAccount { get; }
+ void UpdateParentAccounnt(MailAccount account);
+ }
+
+ public interface IMergedAccountFolderMenuItem : IBaseFolderMenuItem { }
+
+ public interface IBaseFolderMenuItem : IMenuItem
+ {
+ string FolderName { get; }
+ bool IsSynchronizationEnabled { get; }
+ int UnreadItemCount { get; set; }
+ SpecialFolderType SpecialFolderType { get; }
+ IEnumerable HandlingFolders { get; }
+ IEnumerable SubMenuItems { get; }
+ bool IsMoveTarget { get; }
+ bool IsSticky { get; }
+ bool IsSystemFolder { get; }
+ bool ShowUnreadCount { get; }
+ string AssignedAccountName { get; }
+
+ void UpdateFolder(IMailItemFolder folder);
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/IFolderService.cs b/Wino.Core.Domain/Interfaces/IFolderService.cs
index 33cf1f35..c7a27a87 100644
--- a/Wino.Core.Domain/Interfaces/IFolderService.cs
+++ b/Wino.Core.Domain/Interfaces/IFolderService.cs
@@ -9,86 +9,87 @@ using Wino.Core.Domain.Models.Folders;
using Wino.Core.Domain.Models.MailItem;
using Wino.Core.Domain.Models.Synchronization;
-namespace Wino.Core.Domain.Interfaces;
-
-public interface IFolderService
+namespace Wino.Core.Domain.Interfaces
{
- Task GetFolderStructureForAccountAsync(Guid accountId, bool includeHiddenFolders);
- Task GetFolderAsync(Guid folderId);
- Task GetFolderAsync(Guid accountId, string remoteFolderId);
- Task> GetFoldersAsync(Guid accountId);
- Task GetSpecialFolderByAccountIdAsync(Guid accountId, SpecialFolderType type);
- Task GetCurrentItemCountForFolder(Guid folderId);
- Task GetFolderNotificationBadgeAsync(Guid folderId);
- Task ChangeStickyStatusAsync(Guid folderId, bool isSticky);
+ public interface IFolderService
+ {
+ Task GetFolderStructureForAccountAsync(Guid accountId, bool includeHiddenFolders);
+ Task GetFolderAsync(Guid folderId);
+ Task GetFolderAsync(Guid accountId, string remoteFolderId);
+ Task> GetFoldersAsync(Guid accountId);
+ Task GetSpecialFolderByAccountIdAsync(Guid accountId, SpecialFolderType type);
+ Task GetCurrentItemCountForFolder(Guid folderId);
+ Task GetFolderNotificationBadgeAsync(Guid folderId);
+ Task ChangeStickyStatusAsync(Guid folderId, bool isSticky);
- Task UpdateSystemFolderConfigurationAsync(Guid accountId, SystemFolderConfiguration configuration);
- Task ChangeFolderSynchronizationStateAsync(Guid folderId, bool isSynchronizationEnabled);
- Task ChangeFolderShowUnreadCountStateAsync(Guid folderId, bool showUnreadCount);
+ Task UpdateSystemFolderConfigurationAsync(Guid accountId, SystemFolderConfiguration configuration);
+ Task ChangeFolderSynchronizationStateAsync(Guid folderId, bool isSynchronizationEnabled);
+ Task ChangeFolderShowUnreadCountStateAsync(Guid folderId, bool showUnreadCount);
- Task> GetSynchronizationFoldersAsync(MailSynchronizationOptions options);
+ Task> GetSynchronizationFoldersAsync(MailSynchronizationOptions options);
- ///
- /// Returns the folder - mail mapping for the given mail copy ids.
- ///
- Task> GetMailFolderPairMetadatasAsync(IEnumerable mailCopyIds);
+ ///
+ /// Returns the folder - mail mapping for the given mail copy ids.
+ ///
+ Task> GetMailFolderPairMetadatasAsync(IEnumerable mailCopyIds);
- ///
- /// Returns the folder - mail mapping for the given mail copy id.
- ///
- Task> GetMailFolderPairMetadatasAsync(string mailCopyId);
+ ///
+ /// Returns the folder - mail mapping for the given mail copy id.
+ ///
+ Task> GetMailFolderPairMetadatasAsync(string mailCopyId);
- ///
- /// Deletes the folder for the given account by remote folder id.
- ///
- /// Account to remove from.
- /// Remote folder id.
- ///
- Task DeleteFolderAsync(Guid accountId, string remoteFolderId);
+ ///
+ /// Deletes the folder for the given account by remote folder id.
+ ///
+ /// Account to remove from.
+ /// Remote folder id.
+ ///
+ Task DeleteFolderAsync(Guid accountId, string remoteFolderId);
- ///
- /// Adds a new folder.
- ///
- /// Folder to add.
- Task InsertFolderAsync(MailItemFolder folder);
+ ///
+ /// Adds a new folder.
+ ///
+ /// Folder to add.
+ Task InsertFolderAsync(MailItemFolder folder);
- ///
- /// Returns the known uids for the given folder.
- /// Only used for IMAP
- ///
- /// Folder to get uIds for
- Task> GetKnownUidsForFolderAsync(Guid folderId);
+ ///
+ /// Returns the known uids for the given folder.
+ /// Only used for IMAP
+ ///
+ /// Folder to get uIds for
+ Task> GetKnownUidsForFolderAsync(Guid folderId);
- ///
- /// Checks if Inbox special folder exists for an account.
- ///
- /// Account id to check for.
- /// True if Inbox exists, False if not.
- Task IsInboxAvailableForAccountAsync(Guid accountId);
+ ///
+ /// Checks if Inbox special folder exists for an account.
+ ///
+ /// Account id to check for.
+ /// True if Inbox exists, False if not.
+ Task IsInboxAvailableForAccountAsync(Guid accountId);
- ///
- /// Updates folder's LastSynchronizedDate to now.
- ///
- /// Folder to update.
- Task UpdateFolderLastSyncDateAsync(Guid folderId);
+ ///
+ /// Updates folder's LastSynchronizedDate to now.
+ ///
+ /// Folder to update.
+ Task UpdateFolderLastSyncDateAsync(Guid folderId);
- ///
- /// Updates the given folder.
- ///
- /// Folder to update.
- Task UpdateFolderAsync(MailItemFolder folder);
+ ///
+ /// Updates the given folder.
+ ///
+ /// Folder to update.
+ Task UpdateFolderAsync(MailItemFolder folder);
- ///
- /// Returns the active folder menu items for the given account for UI.
- ///
- /// Account to get folder menu items for.
- Task> GetAccountFoldersForDisplayAsync(IAccountMenuItem accountMenuItem);
+ ///
+ /// Returns the active folder menu items for the given account for UI.
+ ///
+ /// Account to get folder menu items for.
+ Task> GetAccountFoldersForDisplayAsync(IAccountMenuItem accountMenuItem);
- ///
- /// Returns a list of unread item counts for the given account ids.
- /// Every folder that is marked as show unread badge is included.
- ///
- /// Account ids to get unread folder counts for.
- Task> GetUnreadItemCountResultsAsync(IEnumerable accountIds);
+ ///
+ /// Returns a list of unread item counts for the given account ids.
+ /// Every folder that is marked as show unread badge is included.
+ ///
+ /// Account ids to get unread folder counts for.
+ Task> GetUnreadItemCountResultsAsync(IEnumerable accountIds);
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/IFontService.cs b/Wino.Core.Domain/Interfaces/IFontService.cs
index ac2d3249..ac938bd9 100644
--- a/Wino.Core.Domain/Interfaces/IFontService.cs
+++ b/Wino.Core.Domain/Interfaces/IFontService.cs
@@ -1,15 +1,16 @@
using System.Collections.Generic;
-namespace Wino.Core.Domain.Interfaces;
-
-///
-/// Service to access available fonts.
-///
-public interface IFontService
+namespace Wino.Core.Domain.Interfaces
{
///
- /// Get available fonts. Default + installed system fonts.
- /// Fonts initialized only once. To refresh fonts, restart the application.
+ /// Service to access available fonts.
///
- List GetFonts();
+ public interface IFontService
+ {
+ ///
+ /// Get available fonts. Default + installed system fonts.
+ /// Fonts initialized only once. To refresh fonts, restart the application.
+ ///
+ List GetFonts();
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/IGmailThreadingStrategy.cs b/Wino.Core.Domain/Interfaces/IGmailThreadingStrategy.cs
index 17ec3b74..2348d8b2 100644
--- a/Wino.Core.Domain/Interfaces/IGmailThreadingStrategy.cs
+++ b/Wino.Core.Domain/Interfaces/IGmailThreadingStrategy.cs
@@ -1,3 +1,4 @@
-namespace Wino.Core.Domain.Interfaces;
-
-public interface IGmailThreadingStrategy : IThreadingStrategy { }
+namespace Wino.Core.Domain.Interfaces
+{
+ public interface IGmailThreadingStrategy : IThreadingStrategy { }
+}
diff --git a/Wino.Core.Domain/Interfaces/IImapAccountCreationDialog.cs b/Wino.Core.Domain/Interfaces/IImapAccountCreationDialog.cs
index 21d9fb47..9230aec0 100644
--- a/Wino.Core.Domain/Interfaces/IImapAccountCreationDialog.cs
+++ b/Wino.Core.Domain/Interfaces/IImapAccountCreationDialog.cs
@@ -1,24 +1,25 @@
using System.Threading.Tasks;
using Wino.Core.Domain.Entities.Shared;
-namespace Wino.Core.Domain.Interfaces;
-
-public interface IImapAccountCreationDialog : IAccountCreationDialog
+namespace Wino.Core.Domain.Interfaces
{
- ///
- /// Returns the custom server information from the dialog..
- ///
- /// Null if canceled.
- Task GetCustomServerInformationAsync();
+ public interface IImapAccountCreationDialog : IAccountCreationDialog
+ {
+ ///
+ /// Returns the custom server information from the dialog..
+ ///
+ /// Null if canceled.
+ Task GetCustomServerInformationAsync();
- ///
- /// Displays preparing folders page.
- ///
- void ShowPreparingFolders();
+ ///
+ /// Displays preparing folders page.
+ ///
+ void ShowPreparingFolders();
- ///
- /// Updates account properties for the welcome imap setup dialog and starts the setup.
- ///
- /// Account properties.
- void StartImapConnectionSetup(MailAccount account);
+ ///
+ /// Updates account properties for the welcome imap setup dialog and starts the setup.
+ ///
+ /// Account properties.
+ void StartImapConnectionSetup(MailAccount account);
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/IImapSynchronizationStrategyProvider.cs b/Wino.Core.Domain/Interfaces/IImapSynchronizationStrategyProvider.cs
index 3fafc48e..6292285f 100644
--- a/Wino.Core.Domain/Interfaces/IImapSynchronizationStrategyProvider.cs
+++ b/Wino.Core.Domain/Interfaces/IImapSynchronizationStrategyProvider.cs
@@ -1,11 +1,12 @@
using MailKit.Net.Imap;
-namespace Wino.Core.Domain.Interfaces;
-
-///
-/// Provides a synchronization strategy for synchronizing IMAP folders based on the server capabilities.
-///
-public interface IImapSynchronizationStrategyProvider
+namespace Wino.Core.Domain.Interfaces
{
- IImapSynchronizerStrategy GetSynchronizationStrategy(IImapClient client);
+ ///
+ /// Provides a synchronization strategy for synchronizing IMAP folders based on the server capabilities.
+ ///
+ public interface IImapSynchronizationStrategyProvider
+ {
+ IImapSynchronizerStrategy GetSynchronizationStrategy(IImapClient client);
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/IImapSynchronizer.cs b/Wino.Core.Domain/Interfaces/IImapSynchronizer.cs
index 496eeb92..6d3fca5d 100644
--- a/Wino.Core.Domain/Interfaces/IImapSynchronizer.cs
+++ b/Wino.Core.Domain/Interfaces/IImapSynchronizer.cs
@@ -4,13 +4,14 @@ using System.Threading.Tasks;
using Wino.Core.Domain.Entities.Mail;
using Wino.Core.Domain.Models.MailItem;
-namespace Wino.Core.Domain.Interfaces;
-
-public interface IImapSynchronizer
+namespace Wino.Core.Domain.Interfaces
{
- uint InitialMessageDownloadCountPerFolder { get; }
+ public interface IImapSynchronizer
+ {
+ uint InitialMessageDownloadCountPerFolder { get; }
- Task> CreateNewMailPackagesAsync(ImapMessageCreationPackage message, MailItemFolder assignedFolder, CancellationToken cancellationToken = default);
- Task StartIdleClientAsync();
- Task StopIdleClientAsync();
+ Task> CreateNewMailPackagesAsync(ImapMessageCreationPackage message, MailItemFolder assignedFolder, CancellationToken cancellationToken = default);
+ Task StartIdleClientAsync();
+ Task StopIdleClientAsync();
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/IImapSynchronizerStrategy.cs b/Wino.Core.Domain/Interfaces/IImapSynchronizerStrategy.cs
index be6e1218..0b1f7aff 100644
--- a/Wino.Core.Domain/Interfaces/IImapSynchronizerStrategy.cs
+++ b/Wino.Core.Domain/Interfaces/IImapSynchronizerStrategy.cs
@@ -4,18 +4,19 @@ using System.Threading.Tasks;
using MailKit.Net.Imap;
using Wino.Core.Domain.Entities.Mail;
-namespace Wino.Core.Domain.Interfaces;
-
-public interface IImapSynchronizerStrategy
+namespace Wino.Core.Domain.Interfaces
{
- ///
- /// Synchronizes given folder with the ImapClient client from the client pool.
- ///
- /// Client to perform sync with. I love Mira and Jasminka
- /// Folder to synchronize.
- /// Imap synchronizer that downloads messages.
- /// Cancellation token.
- /// List of new downloaded message ids that don't exist locally.
- Task> HandleSynchronizationAsync(IImapClient client, MailItemFolder folder, IImapSynchronizer synchronizer, CancellationToken cancellationToken = default);
+ public interface IImapSynchronizerStrategy
+ {
+ ///
+ /// Synchronizes given folder with the ImapClient client from the client pool.
+ ///
+ /// Client to perform sync with. I love Mira and Jasminka
+ /// Folder to synchronize.
+ /// Imap synchronizer that downloads messages.
+ /// Cancellation token.
+ /// List of new downloaded message ids that don't exist locally.
+ Task> HandleSynchronizationAsync(IImapClient client, MailItemFolder folder, IImapSynchronizer synchronizer, CancellationToken cancellationToken = default);
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/IImapTestService.cs b/Wino.Core.Domain/Interfaces/IImapTestService.cs
index 4ceeef68..d79837e6 100644
--- a/Wino.Core.Domain/Interfaces/IImapTestService.cs
+++ b/Wino.Core.Domain/Interfaces/IImapTestService.cs
@@ -1,9 +1,10 @@
using System.Threading.Tasks;
using Wino.Core.Domain.Entities.Shared;
-namespace Wino.Core.Domain.Interfaces;
-
-public interface IImapTestService
+namespace Wino.Core.Domain.Interfaces
{
- Task TestImapConnectionAsync(CustomServerInformation serverInformation, bool allowSSLHandShake);
+ public interface IImapTestService
+ {
+ Task TestImapConnectionAsync(CustomServerInformation serverInformation, bool allowSSLHandShake);
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/IImapThreadingStrategy.cs b/Wino.Core.Domain/Interfaces/IImapThreadingStrategy.cs
index b613cd70..47883ac4 100644
--- a/Wino.Core.Domain/Interfaces/IImapThreadingStrategy.cs
+++ b/Wino.Core.Domain/Interfaces/IImapThreadingStrategy.cs
@@ -1,3 +1,4 @@
-namespace Wino.Core.Domain.Interfaces;
-
-public interface IImapThreadingStrategy : IThreadingStrategy { }
+namespace Wino.Core.Domain.Interfaces
+{
+ public interface IImapThreadingStrategy : IThreadingStrategy { }
+}
diff --git a/Wino.Core.Domain/Interfaces/IInitializeAsync.cs b/Wino.Core.Domain/Interfaces/IInitializeAsync.cs
index d12e45dd..1850a7c0 100644
--- a/Wino.Core.Domain/Interfaces/IInitializeAsync.cs
+++ b/Wino.Core.Domain/Interfaces/IInitializeAsync.cs
@@ -1,11 +1,12 @@
using System.Threading.Tasks;
-namespace Wino.Core.Domain.Interfaces;
-
-///
-/// An interface that all startup services must implement.
-///
-public interface IInitializeAsync
+namespace Wino.Core.Domain.Interfaces
{
- Task InitializeAsync();
+ ///
+ /// An interface that all startup services must implement.
+ ///
+ public interface IInitializeAsync
+ {
+ Task InitializeAsync();
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/IKeyPressService.cs b/Wino.Core.Domain/Interfaces/IKeyPressService.cs
index 79fb90c2..724ad0c4 100644
--- a/Wino.Core.Domain/Interfaces/IKeyPressService.cs
+++ b/Wino.Core.Domain/Interfaces/IKeyPressService.cs
@@ -1,7 +1,8 @@
-namespace Wino.Core.Domain.Interfaces;
-
-public interface IKeyPressService
+namespace Wino.Core.Domain.Interfaces
{
- bool IsCtrlKeyPressed();
- bool IsShiftKeyPressed();
+ public interface IKeyPressService
+ {
+ bool IsCtrlKeyPressed();
+ bool IsShiftKeyPressed();
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/ILogInitializer.cs b/Wino.Core.Domain/Interfaces/ILogInitializer.cs
index 35870d53..13accf16 100644
--- a/Wino.Core.Domain/Interfaces/ILogInitializer.cs
+++ b/Wino.Core.Domain/Interfaces/ILogInitializer.cs
@@ -1,8 +1,9 @@
-namespace Wino.Core.Domain.Interfaces;
-
-public interface ILogInitializer
+namespace Wino.Core.Domain.Interfaces
{
- void SetupLogger(string fullLogFilePath);
+ public interface ILogInitializer
+ {
+ void SetupLogger(string fullLogFilePath);
- void RefreshLoggingLevel();
+ void RefreshLoggingLevel();
+ }
}
diff --git a/Wino.Core.Domain/Interfaces/IMailDialogService.cs b/Wino.Core.Domain/Interfaces/IMailDialogService.cs
index 53050931..1e122d5c 100644
--- a/Wino.Core.Domain/Interfaces/IMailDialogService.cs
+++ b/Wino.Core.Domain/Interfaces/IMailDialogService.cs
@@ -7,46 +7,47 @@ 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
+namespace Wino.Core.Domain.Interfaces
{
- Task ShowHardDeleteConfirmationAsync();
- Task HandleSystemFolderConfigurationDialogAsync(Guid accountId, IFolderService folderService);
+ public interface IMailDialogService : IDialogServiceBase
+ {
+ Task ShowHardDeleteConfirmationAsync();
+ Task HandleSystemFolderConfigurationDialogAsync(Guid accountId, IFolderService folderService);
- // Custom dialogs
- Task ShowMoveMailFolderDialogAsync(List availableFolders);
- Task ShowAccountPickerDialogAsync(List availableAccounts);
+ // Custom dialogs
+ Task ShowMoveMailFolderDialogAsync(List availableFolders);
+ Task