Compare commits
22 Commits
feature/Im
...
v1.9.50
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
133f768af4 | ||
|
|
380883a3d5 | ||
|
|
662ce99f94 | ||
|
|
006404aa87 | ||
|
|
42070a2e5b | ||
|
|
6fcfb7ff7b | ||
|
|
616b56f4bd | ||
|
|
16272fa049 | ||
|
|
3021850fa0 | ||
|
|
bb2dbe1457 | ||
|
|
62fc21be7e | ||
|
|
50d0ebc6c8 | ||
|
|
ad900d596c | ||
|
|
7d8da33f42 | ||
|
|
b73eb3efcb | ||
|
|
b7b51ac4e6 | ||
|
|
bf1480705d | ||
|
|
973ab1570d | ||
|
|
20010e77ae | ||
|
|
05280dfd42 | ||
|
|
e0f87f1374 | ||
|
|
46cbf443cf |
@@ -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
|
||||
@@ -288,5 +288,3 @@ 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
|
||||
@@ -1,7 +0,0 @@
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<LangVersion>preview</LangVersion>
|
||||
<IsAotCompatible>true</IsAotCompatible>
|
||||
<Configurations>Debug;Release</Configurations>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -1,65 +0,0 @@
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageVersion Include="ColorHashSharp" Version="1.0.0" />
|
||||
<PackageVersion Include="CommunityToolkit.Common" Version="8.4.0" />
|
||||
<PackageVersion Include="CommunityToolkit.Diagnostics" Version="8.4.0" />
|
||||
<PackageVersion Include="CommunityToolkit.Labs.Uwp.Controls.MarkdownTextBlock" Version="0.1.250206-build.2040" />
|
||||
<PackageVersion Include="CommunityToolkit.Labs.Uwp.DependencyPropertyGenerator" Version="0.1.250206-build.2040" />
|
||||
<PackageVersion Include="CommunityToolkit.Mvvm" Version="8.4.0" />
|
||||
<PackageVersion Include="CommunityToolkit.Uwp.Animations" Version="8.2.250129-preview2" />
|
||||
<PackageVersion Include="CommunityToolkit.Uwp.Behaviors" Version="8.2.250129-preview2" />
|
||||
<PackageVersion Include="CommunityToolkit.Uwp.Controls.Segmented" Version="8.2.250129-preview2" />
|
||||
<PackageVersion Include="CommunityToolkit.Uwp.Controls.SettingsControls" Version="8.2.250129-preview2" />
|
||||
<PackageVersion Include="CommunityToolkit.Uwp.Controls.Sizers" Version="8.2.250129-preview2" />
|
||||
<PackageVersion Include="CommunityToolkit.Uwp.Controls.TabbedCommandBar" Version="8.2.250129-preview2" />
|
||||
<PackageVersion Include="CommunityToolkit.Uwp.Controls.TokenizingTextBox" Version="8.2.250129-preview2" />
|
||||
<PackageVersion Include="CommunityToolkit.Uwp.Extensions" Version="8.2.250129-preview2" />
|
||||
<PackageVersion Include="EmailValidation" Version="1.2.0" />
|
||||
<PackageVersion Include="HtmlAgilityPack" Version="1.11.72" />
|
||||
<PackageVersion Include="Ical.Net" Version="4.3.1" />
|
||||
<PackageVersion Include="IsExternalInit" Version="1.0.3" />
|
||||
<PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="3.11.0" />
|
||||
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.12.0" />
|
||||
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.2" />
|
||||
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="9.0.2" />
|
||||
<PackageVersion Include="Microsoft.Graph" Version="5.69.0" />
|
||||
<PackageVersion Include="Microsoft.Identity.Client" Version="4.68.0" />
|
||||
<PackageVersion Include="Microsoft.Identity.Client.Broker" Version="4.68.0" />
|
||||
<PackageVersion Include="Microsoft.Identity.Client.Extensions.Msal" Version="4.68.0" />
|
||||
<PackageVersion Include="Microsoft.NETCore.UniversalWindowsPlatform" Version="6.2.14" />
|
||||
<PackageVersion Include="Microsoft.UI.Xaml" Version="2.8.7" />
|
||||
<PackageVersion Include="Microsoft.Xaml.Behaviors.Uwp.Managed" Version="3.0.0" />
|
||||
<PackageVersion Include="MimeKit" Version="4.10.0" />
|
||||
<PackageVersion Include="morelinq" Version="4.4.0" />
|
||||
<PackageVersion Include="Nito.AsyncEx" Version="5.1.2" />
|
||||
<PackageVersion Include="Nito.AsyncEx.Tasks" Version="5.1.2" />
|
||||
<PackageVersion Include="NodaTime" Version="3.2.1" />
|
||||
<PackageVersion Include="Serilog" Version="4.2.0" />
|
||||
<PackageVersion Include="Serilog.Exceptions" Version="8.4.0" />
|
||||
<PackageVersion Include="Serilog.Sinks.Debug" Version="3.0.0" />
|
||||
<PackageVersion Include="Serilog.Sinks.File" Version="6.0.0" />
|
||||
<PackageVersion Include="Serilog.Sinks.ApplicationInsights" Version="4.0.0" />
|
||||
<PackageVersion Include="SkiaSharp" Version="3.116.1" />
|
||||
<PackageVersion Include="sqlite-net-pcl" Version="1.9.172" />
|
||||
<PackageVersion Include="SqlKata" Version="4.0.1" />
|
||||
<PackageVersion Include="System.Private.Uri" Version="4.3.2" />
|
||||
<PackageVersion Include="System.Text.Encoding.CodePages" Version="9.0.2" />
|
||||
<PackageVersion Include="System.Text.Json" Version="9.0.2" />
|
||||
<PackageVersion Include="Win2D.uwp" Version="1.28.2" />
|
||||
<PackageVersion Include="H.NotifyIcon.Wpf" Version="2.2.0" />
|
||||
<PackageVersion Include="CommunityToolkit.WinUI.Notifications" Version="7.1.2" />
|
||||
<PackageVersion Include="Google.Apis.Auth" Version="1.69.0" />
|
||||
<PackageVersion Include="Google.Apis.Calendar.v3" Version="1.69.0.3667" />
|
||||
<PackageVersion Include="Google.Apis.Gmail.v1" Version="1.68.0.3427" />
|
||||
<PackageVersion Include="Google.Apis.PeopleService.v1" Version="1.68.0.3359" />
|
||||
<PackageVersion Include="HtmlKit" Version="1.2.0" />
|
||||
<PackageVersion Include="MailKit" Version="4.10.0" />
|
||||
<PackageVersion Include="TimePeriodLibrary.NET" Version="2.1.5" />
|
||||
<PackageVersion Include="System.Reactive" Version="6.0.1" />
|
||||
<PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="9.0.2" />
|
||||
<PackageVersion Include="System.Text.Encodings.Web" Version="9.0.2" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,10 +1,10 @@
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Interfaces;
|
||||
|
||||
namespace Wino.Authentication;
|
||||
|
||||
public abstract class BaseAuthenticator
|
||||
namespace Wino.Authentication
|
||||
{
|
||||
public abstract class BaseAuthenticator
|
||||
{
|
||||
public abstract MailProviderType ProviderType { get; }
|
||||
protected IAuthenticatorConfig AuthenticatorConfig { get; }
|
||||
|
||||
@@ -13,4 +13,5 @@ public abstract class BaseAuthenticator
|
||||
|
||||
AuthenticatorConfig = authenticatorConfig;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,10 +7,10 @@ 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 class GmailAuthenticator : BaseAuthenticator, IGmailAuthenticator
|
||||
{
|
||||
public GmailAuthenticator(IAuthenticatorConfig authConfig) : base(authConfig)
|
||||
{
|
||||
}
|
||||
@@ -47,4 +47,5 @@ public class GmailAuthenticator : BaseAuthenticator, IGmailAuthenticator
|
||||
ClientId = ClientId
|
||||
}, AuthenticatorConfig.GmailScope, account.Id.ToString(), CancellationToken.None, new FileDataStore(AuthenticatorConfig.GmailTokenStoreIdentifier));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,10 +11,10 @@ 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
|
||||
{
|
||||
public class OutlookAuthenticator : BaseAuthenticator, IOutlookAuthenticator
|
||||
{
|
||||
private const string TokenCacheFileName = "OutlookCache.bin";
|
||||
private bool isTokenCacheAttached = false;
|
||||
|
||||
@@ -122,4 +122,5 @@ public class OutlookAuthenticator : BaseAuthenticator, IOutlookAuthenticator
|
||||
|
||||
throw new AuthenticationException(Translator.Exception_UnknowErrorDuringAuthentication, new Exception(Translator.Exception_TokenGenerationFailed));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,20 +1,24 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<RuntimeIdentifiers>win-x86;win-x64;win-arm64</RuntimeIdentifiers>
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
<RootNamespace>Wino.Authentication</RootNamespace>
|
||||
<Platforms>x86;x64;arm64</Platforms>
|
||||
<Configurations>Debug;Release</Configurations>
|
||||
<LangVersion>12</LangVersion>
|
||||
<Platforms>AnyCPU;x64;x86</Platforms>
|
||||
<AccelerateBuildsInVisualStudio>true</AccelerateBuildsInVisualStudio>
|
||||
<ProduceReferenceAssembly>true</ProduceReferenceAssembly>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="CommunityToolkit.Diagnostics" />
|
||||
<PackageReference Include="CommunityToolkit.Mvvm" />
|
||||
<PackageReference Include="Google.Apis.Auth" />
|
||||
<PackageReference Include="Microsoft.Identity.Client" />
|
||||
<PackageReference Include="Microsoft.Identity.Client.Broker" />
|
||||
<PackageReference Include="Microsoft.Identity.Client.Extensions.Msal" />
|
||||
<PackageReference Include="CommunityToolkit.Diagnostics" Version="8.3.2" />
|
||||
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.3.2" />
|
||||
<PackageReference Include="Google.Apis.Auth" Version="1.68.0" />
|
||||
<PackageReference Include="Microsoft.Identity.Client" Version="4.66.2" />
|
||||
<PackageReference Include="Microsoft.Identity.Client.Broker" Version="4.66.2" />
|
||||
<PackageReference Include="Microsoft.Identity.Client.Extensions.Msal" Version="4.66.2" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Wino.Core.Domain\Wino.Core.Domain.csproj" />
|
||||
<ProjectReference Include="..\Wino.Messages\Wino.Messaging.csproj" />
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
using Wino.Core.Domain.Interfaces;
|
||||
|
||||
namespace Wino.Calendar.Services;
|
||||
|
||||
public class CalendarAuthenticatorConfig : IAuthenticatorConfig
|
||||
namespace Wino.Calendar.Services
|
||||
{
|
||||
public class CalendarAuthenticatorConfig : IAuthenticatorConfig
|
||||
{
|
||||
public string OutlookAuthenticatorClientId => "b19c2035-d740-49ff-b297-de6ec561b208";
|
||||
|
||||
public string[] OutlookScope => new string[]
|
||||
@@ -29,4 +29,5 @@ public class CalendarAuthenticatorConfig : IAuthenticatorConfig
|
||||
};
|
||||
|
||||
public string GmailTokenStoreIdentifier => "WinoCalendarGmailTokenStore";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Wino.Core.Domain;
|
||||
|
||||
[JsonSerializable(typeof(Dictionary<string, string>))]
|
||||
[JsonSerializable(typeof(string))]
|
||||
[JsonSerializable(typeof(int))]
|
||||
[JsonSerializable(typeof(List<string>))]
|
||||
[JsonSerializable(typeof(bool))]
|
||||
public partial class BasicTypesJsonContext : JsonSerializerContext;
|
||||
@@ -7,10 +7,10 @@ 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 class CalendarEventCollection
|
||||
{
|
||||
public event EventHandler<ICalendarItem> CalendarItemAdded;
|
||||
public event EventHandler<ICalendarItem> CalendarItemRemoved;
|
||||
|
||||
@@ -152,4 +152,5 @@ public class CalendarEventCollection
|
||||
|
||||
CalendarItemsCleared?.Invoke(this, EventArgs.Empty);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
using Wino.Core.Domain.Interfaces;
|
||||
using Wino.Core.Domain.Models.Calendar;
|
||||
|
||||
namespace Wino.Core.Domain.Collections;
|
||||
|
||||
public class DayRangeCollection : ObservableRangeCollection<DayRangeRenderModel>
|
||||
namespace Wino.Core.Domain.Collections
|
||||
{
|
||||
public class DayRangeCollection : ObservableRangeCollection<DayRangeRenderModel>
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the range of dates that are currently displayed in the collection.
|
||||
/// </summary>
|
||||
@@ -38,4 +38,5 @@ public class DayRangeCollection : ObservableRangeCollection<DayRangeRenderModel>
|
||||
calendarDayModel?.EventsCollection.AddCalendarItem(calendarItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,14 +4,14 @@ using System.Collections.ObjectModel;
|
||||
using System.Collections.Specialized;
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace Wino.Core.Domain.Collections;
|
||||
|
||||
/// <summary>
|
||||
/// Represents a dynamic data collection that provides notifications when items get added, removed, or when the whole list is refreshed.
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
public class ObservableRangeCollection<T> : ObservableCollection<T>
|
||||
namespace Wino.Core.Domain.Collections
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a dynamic data collection that provides notifications when items get added, removed, or when the whole list is refreshed.
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
public class ObservableRangeCollection<T> : ObservableCollection<T>
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the System.Collections.ObjectModel.ObservableCollection(Of T) class.
|
||||
@@ -170,4 +170,5 @@ public class ObservableRangeCollection<T> : ObservableCollection<T>
|
||||
else
|
||||
OnCollectionChanged(new NotifyCollectionChangedEventArgs(action, changedItems: changedItems, startingIndex: startingIndex));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
namespace Wino.Core.Domain;
|
||||
|
||||
public static class Constants
|
||||
namespace Wino.Core.Domain
|
||||
{
|
||||
public static class Constants
|
||||
{
|
||||
/// <summary>
|
||||
/// MIME header that exists in all the drafts created from Wino.
|
||||
/// </summary>
|
||||
@@ -19,4 +19,5 @@ public static class Constants
|
||||
|
||||
public const string WinoMailIdentiifer = nameof(WinoMailIdentiifer);
|
||||
public const string WinoCalendarIdentifier = nameof(WinoCalendarIdentifier);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
using SQLite;
|
||||
using Wino.Core.Domain.Interfaces;
|
||||
|
||||
namespace Wino.Core.Domain.Entities.Calendar;
|
||||
|
||||
public class AccountCalendar : IAccountCalendar
|
||||
namespace Wino.Core.Domain.Entities.Calendar
|
||||
{
|
||||
public class AccountCalendar : IAccountCalendar
|
||||
{
|
||||
[PrimaryKey]
|
||||
public Guid Id { get; set; }
|
||||
public Guid AccountId { get; set; }
|
||||
@@ -21,4 +21,5 @@ public class AccountCalendar : IAccountCalendar
|
||||
public string TextColorHex { get; set; }
|
||||
public string BackgroundColorHex { get; set; }
|
||||
public string TimeZone { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
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
|
||||
{
|
||||
// TODO: Connect to Contact store with Wino People.
|
||||
public class CalendarEventAttendee
|
||||
{
|
||||
[PrimaryKey]
|
||||
public Guid Id { get; set; }
|
||||
public Guid CalendarItemId { get; set; }
|
||||
@@ -16,4 +16,5 @@ public class CalendarEventAttendee
|
||||
public bool IsOrganizer { get; set; }
|
||||
public bool IsOptionalAttendee { get; set; }
|
||||
public string Comment { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,11 +5,11 @@ 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
|
||||
{
|
||||
[DebuggerDisplay("{Title} ({StartDate} - {EndDate})")]
|
||||
public class CalendarItem : ICalendarItem
|
||||
{
|
||||
[PrimaryKey]
|
||||
public Guid Id { get; set; }
|
||||
public string RemoteEventId { get; set; }
|
||||
@@ -176,4 +176,5 @@ public class CalendarItem : ICalendarItem
|
||||
IsOccurrence = true
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
{
|
||||
public class Reminder
|
||||
{
|
||||
[PrimaryKey]
|
||||
public Guid Id { get; set; }
|
||||
public Guid CalendarItemId { get; set; }
|
||||
|
||||
public DateTimeOffset ReminderTime { get; set; }
|
||||
public CalendarItemReminderType ReminderType { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
using System;
|
||||
using SQLite;
|
||||
|
||||
namespace Wino.Core.Domain.Entities.Mail;
|
||||
|
||||
public class AccountSignature
|
||||
namespace Wino.Core.Domain.Entities.Mail
|
||||
{
|
||||
public class AccountSignature
|
||||
{
|
||||
[PrimaryKey]
|
||||
public Guid Id { get; set; }
|
||||
|
||||
@@ -13,4 +13,5 @@ public class AccountSignature
|
||||
public string HtmlBody { get; set; }
|
||||
|
||||
public Guid MailAccountId { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
using System;
|
||||
using SQLite;
|
||||
|
||||
namespace Wino.Core.Domain.Entities.Mail;
|
||||
|
||||
public class RemoteAccountAlias
|
||||
namespace Wino.Core.Domain.Entities.Mail
|
||||
{
|
||||
public class RemoteAccountAlias
|
||||
{
|
||||
/// <summary>
|
||||
/// Display address of the alias.
|
||||
/// </summary>
|
||||
@@ -40,10 +40,10 @@ public class RemoteAccountAlias
|
||||
/// Used for Gmail only.
|
||||
/// </summary>
|
||||
public string AliasSenderName { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
public class MailAccountAlias : RemoteAccountAlias
|
||||
{
|
||||
public class MailAccountAlias : RemoteAccountAlias
|
||||
{
|
||||
/// <summary>
|
||||
/// Unique Id for the alias.
|
||||
/// </summary>
|
||||
@@ -59,4 +59,5 @@ public class MailAccountAlias : RemoteAccountAlias
|
||||
/// Root aliases can't be deleted.
|
||||
/// </summary>
|
||||
public bool CanDelete => !IsRootAlias;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,14 +5,14 @@ using Wino.Core.Domain.Entities.Shared;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Models.MailItem;
|
||||
|
||||
namespace Wino.Core.Domain.Entities.Mail;
|
||||
|
||||
/// <summary>
|
||||
/// Summary of the parsed MIME messages.
|
||||
/// Wino will do non-network operations on this table and others from the original MIME.
|
||||
/// </summary>
|
||||
public class MailCopy : IMailItem
|
||||
namespace Wino.Core.Domain.Entities.Mail
|
||||
{
|
||||
/// <summary>
|
||||
/// Summary of the parsed MIME messages.
|
||||
/// Wino will do non-network operations on this table and others from the original MIME.
|
||||
/// </summary>
|
||||
public class MailCopy : IMailItem
|
||||
{
|
||||
/// <summary>
|
||||
/// Unique Id of the mail.
|
||||
/// </summary>
|
||||
@@ -153,4 +153,5 @@ public class MailCopy : IMailItem
|
||||
|
||||
public IEnumerable<Guid> GetContainingIds() => [UniqueId];
|
||||
public override string ToString() => $"{Subject} <-> {Id}";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,11 +5,11 @@ 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
|
||||
{
|
||||
[DebuggerDisplay("{FolderName} - {SpecialFolderType}")]
|
||||
public class MailItemFolder : IMailItemFolder
|
||||
{
|
||||
[PrimaryKey]
|
||||
public Guid Id { get; set; }
|
||||
|
||||
@@ -71,4 +71,5 @@ public class MailItemFolder : IMailItemFolder
|
||||
public static MailItemFolder CreateCategoriesFolder() => new MailItemFolder() { IsSticky = true, SpecialFolderType = SpecialFolderType.Category, FolderName = Translator.CategoriesFolderNameOverride };
|
||||
|
||||
public override string ToString() => FolderName;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
using System;
|
||||
using SQLite;
|
||||
|
||||
namespace Wino.Core.Domain.Entities.Mail;
|
||||
|
||||
public class MergedInbox
|
||||
namespace Wino.Core.Domain.Entities.Mail
|
||||
{
|
||||
public class MergedInbox
|
||||
{
|
||||
[PrimaryKey]
|
||||
public Guid Id { get; set; }
|
||||
|
||||
public string Name { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,17 +2,17 @@
|
||||
using System.Collections.Generic;
|
||||
using SQLite;
|
||||
|
||||
namespace Wino.Core.Domain.Entities.Shared;
|
||||
|
||||
/// <summary>
|
||||
/// Back storage for simple name-address book.
|
||||
/// These values will be inserted during MIME fetch.
|
||||
/// </summary>
|
||||
|
||||
// TODO: This can easily evolve to Contact store, just like People app in Windows 10/11.
|
||||
// Do it.
|
||||
public class AccountContact : IEquatable<AccountContact>
|
||||
namespace Wino.Core.Domain.Entities.Shared
|
||||
{
|
||||
/// <summary>
|
||||
/// Back storage for simple name-address book.
|
||||
/// These values will be inserted during MIME fetch.
|
||||
/// </summary>
|
||||
|
||||
// TODO: This can easily evolve to Contact store, just like People app in Windows 10/11.
|
||||
// Do it.
|
||||
public class AccountContact : IEquatable<AccountContact>
|
||||
{
|
||||
/// <summary>
|
||||
/// E-mail address of the contact.
|
||||
/// </summary>
|
||||
@@ -36,6 +36,14 @@ public class AccountContact : IEquatable<AccountContact>
|
||||
/// </summary>
|
||||
public bool IsRootContact { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Short display name of the contact.
|
||||
/// Eather Name or Address.
|
||||
/// </summary>
|
||||
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);
|
||||
@@ -50,7 +58,10 @@ public class AccountContact : IEquatable<AccountContact>
|
||||
|
||||
public override int GetHashCode()
|
||||
{
|
||||
return HashCode.Combine(Address, Name);
|
||||
int hashCode = -1717786383;
|
||||
hashCode = hashCode * -1521134295 + EqualityComparer<string>.Default.GetHashCode(Address);
|
||||
hashCode = hashCode * -1521134295 + EqualityComparer<string>.Default.GetHashCode(Name);
|
||||
return hashCode;
|
||||
}
|
||||
|
||||
public static bool operator ==(AccountContact left, AccountContact right)
|
||||
@@ -62,4 +73,5 @@ public class AccountContact : IEquatable<AccountContact>
|
||||
{
|
||||
return !(left == right);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using SQLite;
|
||||
using Wino.Core.Domain.Enums;
|
||||
|
||||
namespace Wino.Core.Domain.Entities.Shared;
|
||||
|
||||
public class CustomServerInformation
|
||||
namespace Wino.Core.Domain.Entities.Shared
|
||||
{
|
||||
public class CustomServerInformation
|
||||
{
|
||||
[PrimaryKey]
|
||||
public Guid Id { get; set; }
|
||||
|
||||
@@ -50,25 +49,5 @@ public class CustomServerInformation
|
||||
/// Default is 5.
|
||||
/// </summary>
|
||||
public int MaxConcurrentClients { get; set; }
|
||||
|
||||
public Dictionary<string, string> GetConnectionProperties()
|
||||
{
|
||||
// Printout the public connection properties.
|
||||
|
||||
var connectionProperties = new Dictionary<string, string>
|
||||
{
|
||||
{ "IncomingServer", IncomingServer },
|
||||
{ "IncomingServerPort", IncomingServerPort },
|
||||
{ "IncomingServerSocketOption", IncomingServerSocketOption.ToString() },
|
||||
{ "IncomingAuthenticationMethod", IncomingAuthenticationMethod.ToString() },
|
||||
{ "OutgoingServer", OutgoingServer },
|
||||
{ "OutgoingServerPort", OutgoingServerPort },
|
||||
{ "OutgoingServerSocketOption", OutgoingServerSocketOption.ToString() },
|
||||
{ "OutgoingAuthenticationMethod", OutgoingAuthenticationMethod.ToString() },
|
||||
{ "ProxyServer", ProxyServer },
|
||||
{ "ProxyServerPort", ProxyServerPort }
|
||||
};
|
||||
|
||||
return connectionProperties;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,10 +3,10 @@ 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
|
||||
{
|
||||
public class MailAccount
|
||||
{
|
||||
[PrimaryKey]
|
||||
public Guid Id { get; set; }
|
||||
|
||||
@@ -107,4 +107,5 @@ public class MailAccount
|
||||
/// Gets whether the account can perform AliasInformation sync type.
|
||||
/// </summary>
|
||||
public bool IsAliasSyncSupported => ProviderType == MailProviderType.Gmail;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
using System;
|
||||
using SQLite;
|
||||
|
||||
namespace Wino.Core.Domain.Entities.Shared;
|
||||
|
||||
public class MailAccountPreferences
|
||||
namespace Wino.Core.Domain.Entities.Shared
|
||||
{
|
||||
public class MailAccountPreferences
|
||||
{
|
||||
[PrimaryKey]
|
||||
public Guid Id { get; set; }
|
||||
|
||||
@@ -50,4 +50,5 @@ public class MailAccountPreferences
|
||||
/// Gets or sets signature for following messages. Null if signature is not needed.
|
||||
/// </summary>
|
||||
public Guid? SignatureIdForFollowingMessages { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum AccountAttentionReason
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum AccountAttentionReason
|
||||
{
|
||||
None,
|
||||
InvalidCredentials,
|
||||
MissingSystemFolderConfiguration
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum AccountCreationDialogState
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum AccountCreationDialogState
|
||||
{
|
||||
Idle,
|
||||
SigningIn,
|
||||
PreparingFolders,
|
||||
@@ -13,4 +13,5 @@ public enum AccountCreationDialogState
|
||||
FetchingProfileInformation,
|
||||
Canceled,
|
||||
FetchingEvents
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
/// <summary>
|
||||
/// Indicates the state of synchronizer.
|
||||
/// </summary>
|
||||
public enum AccountSynchronizerState
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
/// <summary>
|
||||
/// Indicates the state of synchronizer.
|
||||
/// </summary>
|
||||
public enum AccountSynchronizerState
|
||||
{
|
||||
Idle,
|
||||
ExecutingRequests,
|
||||
Synchronizing
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum AppLanguage
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum AppLanguage
|
||||
{
|
||||
None,
|
||||
English,
|
||||
Deutsch,
|
||||
@@ -17,4 +17,5 @@ public enum AppLanguage
|
||||
PortugeseBrazil,
|
||||
Italian,
|
||||
Romanian
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum AppThemeType
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum AppThemeType
|
||||
{
|
||||
System,
|
||||
PreDefined,
|
||||
Custom,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum ApplicationElementTheme
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum ApplicationElementTheme
|
||||
{
|
||||
Default,
|
||||
Light,
|
||||
Dark
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum AttendeeStatus
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum AttendeeStatus
|
||||
{
|
||||
NeedsAction,
|
||||
Accepted,
|
||||
Tentative,
|
||||
Declined
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum BackgroundSynchronizationReason
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum BackgroundSynchronizationReason
|
||||
{
|
||||
SessionConnected,
|
||||
Timer
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum CalendarDisplayType
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum CalendarDisplayType
|
||||
{
|
||||
Day,
|
||||
Week,
|
||||
WorkWeek,
|
||||
Month,
|
||||
Year
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum CalendarEventTargetType
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum CalendarEventTargetType
|
||||
{
|
||||
Single, // Show details for a single event.
|
||||
Series // Show the series event. Parent of all recurring events.
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
/// <summary>
|
||||
/// Trigger to load more data.
|
||||
/// </summary>
|
||||
public enum CalendarInitInitiative
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
/// <summary>
|
||||
/// Trigger to load more data.
|
||||
/// </summary>
|
||||
public enum CalendarInitInitiative
|
||||
{
|
||||
User,
|
||||
App
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum CalendarItemRecurrenceFrequency
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum CalendarItemRecurrenceFrequency
|
||||
{
|
||||
Daily,
|
||||
Weekly,
|
||||
Monthly,
|
||||
Yearly
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum CalendarItemReminderType
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum CalendarItemReminderType
|
||||
{
|
||||
Popup,
|
||||
Email
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum CalendarItemStatus
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum CalendarItemStatus
|
||||
{
|
||||
NotResponded,
|
||||
Confirmed,
|
||||
Tentative,
|
||||
Cancelled,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum CalendarItemVisibility
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum CalendarItemVisibility
|
||||
{
|
||||
Default,
|
||||
Public,
|
||||
Private,
|
||||
Confidential
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
/// <summary>
|
||||
/// Which way in time to load more data for calendar.
|
||||
/// </summary>
|
||||
public enum CalendarLoadDirection
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
/// <summary>
|
||||
/// Which way in time to load more data for calendar.
|
||||
/// </summary>
|
||||
public enum CalendarLoadDirection
|
||||
{
|
||||
Replace,
|
||||
Previous,
|
||||
Next
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum CalendarOrientation
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum CalendarOrientation
|
||||
{
|
||||
Horizontal,
|
||||
Vertical
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum CalendarSynchronizationType
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
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.
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum ChangeRequestType
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum ChangeRequestType
|
||||
{
|
||||
MailMarkAs,
|
||||
MailChangeFlag,
|
||||
MailHardDelete,
|
||||
@@ -20,4 +20,5 @@ public enum ChangeRequestType
|
||||
DiscardDraft,
|
||||
SendDraft,
|
||||
FetchSingleItem
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum CustomIncomingServerType
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum CustomIncomingServerType
|
||||
{
|
||||
POP3,
|
||||
IMAP4
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum DayHeaderDisplayType
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum DayHeaderDisplayType
|
||||
{
|
||||
TwelveHour,
|
||||
TwentyFourHour,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum DraftCreationReason
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum DraftCreationReason
|
||||
{
|
||||
Empty,
|
||||
Reply,
|
||||
ReplyAll,
|
||||
Forward
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum FilterOptionType
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum FilterOptionType
|
||||
{
|
||||
All,
|
||||
Unread,
|
||||
Flagged,
|
||||
Mentions,
|
||||
Files
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
/// <summary>
|
||||
/// Defines all possible folder operations that can be done.
|
||||
/// Available values for each folder is returned by IContextMenuProvider
|
||||
/// that integrators hold.
|
||||
/// </summary>
|
||||
public enum FolderOperation
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines all possible folder operations that can be done.
|
||||
/// Available values for each folder is returned by IContextMenuProvider
|
||||
/// that integrators hold.
|
||||
/// </summary>
|
||||
public enum FolderOperation
|
||||
{
|
||||
None,
|
||||
Pin,
|
||||
Unpin,
|
||||
@@ -19,4 +19,5 @@ public enum FolderOperation
|
||||
TurnOffNotifications,
|
||||
CreateSubFolder,
|
||||
Seperator
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum ImapAuthenticationMethod
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum ImapAuthenticationMethod
|
||||
{
|
||||
Auto,
|
||||
None,
|
||||
NormalPassword,
|
||||
@@ -9,4 +9,5 @@ public enum ImapAuthenticationMethod
|
||||
Ntlm,
|
||||
CramMd5,
|
||||
DigestMd5
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum ImapConnectionSecurity
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum ImapConnectionSecurity
|
||||
{
|
||||
Auto,
|
||||
None,
|
||||
StartTls,
|
||||
SslTls
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum InfoBarAnimationType
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum InfoBarAnimationType
|
||||
{
|
||||
SlideFromRightToLeft,
|
||||
SlideFromBottomToTop
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum InfoBarMessageType
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum InfoBarMessageType
|
||||
{
|
||||
Information,
|
||||
Success,
|
||||
Warning,
|
||||
Error
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum MailAttachmentType
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum MailAttachmentType
|
||||
{
|
||||
None,
|
||||
Executable,
|
||||
Image,
|
||||
@@ -12,4 +12,5 @@ public enum MailAttachmentType
|
||||
RarArchive,
|
||||
Archive,
|
||||
Other
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum MailImportance
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum MailImportance
|
||||
{
|
||||
Low,
|
||||
Normal,
|
||||
High
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum MailListDisplayMode
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum MailListDisplayMode
|
||||
{
|
||||
Spacious,
|
||||
Medium,
|
||||
Compact,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum MailMarkAsOption
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum MailMarkAsOption
|
||||
{
|
||||
WhenSelected,
|
||||
DontMark,
|
||||
AfterDelay
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
// Synchronizer requests.
|
||||
public enum MailSynchronizerOperation
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
// Synchronizer requests.
|
||||
public enum MailSynchronizerOperation
|
||||
{
|
||||
MarkRead,
|
||||
Move,
|
||||
Delete, // Hard delete.
|
||||
@@ -12,18 +12,18 @@ public enum MailSynchronizerOperation
|
||||
AlwaysMoveTo,
|
||||
MoveToFocused,
|
||||
Archive,
|
||||
}
|
||||
}
|
||||
|
||||
public enum FolderSynchronizerOperation
|
||||
{
|
||||
public enum FolderSynchronizerOperation
|
||||
{
|
||||
RenameFolder,
|
||||
EmptyFolder,
|
||||
MarkFolderRead,
|
||||
}
|
||||
}
|
||||
|
||||
// UI requests
|
||||
public enum MailOperation
|
||||
{
|
||||
// UI requests
|
||||
public enum MailOperation
|
||||
{
|
||||
None,
|
||||
Archive,
|
||||
UnArchive,
|
||||
@@ -54,4 +54,5 @@ public enum MailOperation
|
||||
ViewMessageSource,
|
||||
DiscardLocalDraft,
|
||||
Navigate // For toast activation
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum MailProviderType
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum MailProviderType
|
||||
{
|
||||
Outlook,
|
||||
Gmail,
|
||||
IMAP4 = 4 // 2-3 were removed after release. Don't change for backward compatibility.
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum MailSynchronizationType
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum MailSynchronizationType
|
||||
{
|
||||
UpdateProfile, // Only update profile information
|
||||
ExecuteRequests, // Run the queued requests, and then synchronize if needed.
|
||||
FoldersOnly, // Only synchronize folder metadata.
|
||||
@@ -10,4 +10,5 @@ public enum MailSynchronizationType
|
||||
FullFolders, // Synchronize all folders. This won't update profile or alias information.
|
||||
Alias, // Only update alias information
|
||||
IMAPIdle // Idle client triggered synchronization.
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum NavigationReferenceFrame
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum NavigationReferenceFrame
|
||||
{
|
||||
ShellFrame,
|
||||
RenderingFrame
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
/// <summary>
|
||||
/// Defines the potential reasons for picking folder in the folder picking dialog.
|
||||
/// </summary>
|
||||
public enum PickFolderReason
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines the potential reasons for picking folder in the folder picking dialog.
|
||||
/// </summary>
|
||||
public enum PickFolderReason
|
||||
{
|
||||
Move,
|
||||
SpecialFolder,
|
||||
Any
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum PrintingResult
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum PrintingResult
|
||||
{
|
||||
Abandoned,
|
||||
Canceled,
|
||||
Failed,
|
||||
Submitted
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
public enum SearchMode
|
||||
{
|
||||
Local,
|
||||
Online
|
||||
}
|
||||
@@ -1,11 +1,12 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
/// <summary>
|
||||
/// What should happen to server app when the client is terminated.
|
||||
/// </summary>
|
||||
public enum ServerBackgroundMode
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
/// <summary>
|
||||
/// What should happen to server app when the client is terminated.
|
||||
/// </summary>
|
||||
public enum ServerBackgroundMode
|
||||
{
|
||||
MinimizedTray, // Still runs, tray icon is visible.
|
||||
Invisible, // Still runs, tray icon is invisible.
|
||||
Terminate // Server is terminated as Wino terminates.
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum SortingOptionType
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum SortingOptionType
|
||||
{
|
||||
ReceiveDate,
|
||||
Sender
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum SpecialFolderType
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum SpecialFolderType
|
||||
{
|
||||
Inbox,
|
||||
Starred,
|
||||
Important,
|
||||
@@ -20,4 +20,5 @@ public enum SpecialFolderType
|
||||
Social,
|
||||
Other,
|
||||
More
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum SpecialImapProvider
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum SpecialImapProvider
|
||||
{
|
||||
None,
|
||||
iCloud,
|
||||
Yahoo
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum StartupBehaviorResult
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum StartupBehaviorResult
|
||||
{
|
||||
Enabled,
|
||||
Disabled,
|
||||
DisabledByUser,
|
||||
DisabledByPolicy,
|
||||
Fatal
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
// From the SDK.
|
||||
public enum StorePurchaseResult
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
// From the SDK.
|
||||
public enum StorePurchaseResult
|
||||
{
|
||||
//
|
||||
// Summary:
|
||||
// The purchase request succeeded.
|
||||
@@ -15,4 +15,5 @@ public enum StorePurchaseResult
|
||||
// Summary:
|
||||
// The purchase request did not succeed.
|
||||
NotPurchased,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum SynchronizationCompletedState
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum SynchronizationCompletedState
|
||||
{
|
||||
Success, // All succeeded.
|
||||
Canceled, // Canceled by user or HTTP call.
|
||||
Failed // Exception.
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
/// <summary>
|
||||
/// Enumeration for the source of synchronization.
|
||||
/// Right now it can either be from the client or the server.
|
||||
/// </summary>
|
||||
public enum SynchronizationSource
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
/// <summary>
|
||||
/// Enumeration for the source of synchronization.
|
||||
/// Right now it can either be from the client or the server.
|
||||
/// </summary>
|
||||
public enum SynchronizationSource
|
||||
{
|
||||
Client,
|
||||
Server
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum WinoAppType
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum WinoAppType
|
||||
{
|
||||
Unknown,
|
||||
Mail,
|
||||
Calendar
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum WinoCustomMessageDialogIcon
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum WinoCustomMessageDialogIcon
|
||||
{
|
||||
Information,
|
||||
Warning,
|
||||
Error,
|
||||
Question
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
/// <summary>
|
||||
/// All registered views.
|
||||
/// </summary>
|
||||
public enum WinoPage
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
/// <summary>
|
||||
/// All registered views.
|
||||
/// </summary>
|
||||
public enum WinoPage
|
||||
{
|
||||
None,
|
||||
IdlePage,
|
||||
ComposePage,
|
||||
@@ -30,4 +30,5 @@ public enum WinoPage
|
||||
CalendarPage,
|
||||
CalendarSettingsPage,
|
||||
EventDetailsPage
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
namespace Wino.Core.Domain.Enums;
|
||||
|
||||
public enum WinoServerConnectionStatus
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum WinoServerConnectionStatus
|
||||
{
|
||||
None,
|
||||
Connecting,
|
||||
Connected,
|
||||
Disconnected,
|
||||
Failed
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
namespace Wino.Core.Domain.Exceptions;
|
||||
|
||||
public class AccountSetupCanceledException : System.Exception
|
||||
namespace Wino.Core.Domain.Exceptions
|
||||
{
|
||||
public class AccountSetupCanceledException : System.Exception
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
using System;
|
||||
using Wino.Core.Domain.Entities.Shared;
|
||||
|
||||
namespace Wino.Core.Domain.Exceptions;
|
||||
|
||||
/// <summary>
|
||||
/// 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.
|
||||
/// </summary>
|
||||
public class AuthenticationAttentionException : Exception
|
||||
namespace Wino.Core.Domain.Exceptions
|
||||
{
|
||||
/// <summary>
|
||||
/// 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.
|
||||
/// </summary>
|
||||
public class AuthenticationAttentionException : Exception
|
||||
{
|
||||
public AuthenticationAttentionException(MailAccount account)
|
||||
{
|
||||
Account = account;
|
||||
}
|
||||
|
||||
public MailAccount Account { get; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
using System;
|
||||
|
||||
namespace Wino.Core.Domain.Exceptions;
|
||||
|
||||
/// <summary>
|
||||
/// All exceptions related to authentication.
|
||||
/// </summary>
|
||||
public class AuthenticationException : Exception
|
||||
namespace Wino.Core.Domain.Exceptions
|
||||
{
|
||||
/// <summary>
|
||||
/// All exceptions related to authentication.
|
||||
/// </summary>
|
||||
public class AuthenticationException : Exception
|
||||
{
|
||||
public AuthenticationException(string message) : base(message)
|
||||
{
|
||||
}
|
||||
@@ -14,4 +14,5 @@ public class AuthenticationException : Exception
|
||||
public AuthenticationException(string message, Exception innerException) : base(message, innerException)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
using System;
|
||||
|
||||
namespace Wino.Core.Domain.Exceptions;
|
||||
|
||||
/// <summary>
|
||||
/// An exception thrown when the background task registration is failed.
|
||||
/// </summary>
|
||||
public class BackgroundTaskRegistrationFailedException : Exception { }
|
||||
namespace Wino.Core.Domain.Exceptions
|
||||
{
|
||||
/// <summary>
|
||||
/// An exception thrown when the background task registration is failed.
|
||||
/// </summary>
|
||||
public class BackgroundTaskRegistrationFailedException : Exception { }
|
||||
}
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
using System;
|
||||
|
||||
namespace Wino.Core.Domain.Exceptions;
|
||||
|
||||
/// <summary>
|
||||
/// Thrown when composer cant find the mime to load.
|
||||
/// </summary>
|
||||
public class ComposerMimeNotFoundException : Exception
|
||||
namespace Wino.Core.Domain.Exceptions
|
||||
{
|
||||
/// <summary>
|
||||
/// Thrown when composer cant find the mime to load.
|
||||
/// </summary>
|
||||
public class ComposerMimeNotFoundException : Exception
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
using System;
|
||||
|
||||
namespace Wino.Core.Domain.Exceptions;
|
||||
|
||||
public class CustomThemeCreationFailedException : Exception
|
||||
namespace Wino.Core.Domain.Exceptions
|
||||
{
|
||||
public class CustomThemeCreationFailedException : Exception
|
||||
{
|
||||
public CustomThemeCreationFailedException(string message) : base(message)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
namespace Wino.Core.Domain.Exceptions;
|
||||
|
||||
public class GoogleAuthenticationException : System.Exception
|
||||
namespace Wino.Core.Domain.Exceptions
|
||||
{
|
||||
public class GoogleAuthenticationException : System.Exception
|
||||
{
|
||||
public GoogleAuthenticationException(string message) : base(message) { }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,30 +1,14 @@
|
||||
using System;
|
||||
using Wino.Core.Domain.Entities.Shared;
|
||||
|
||||
namespace Wino.Core.Domain.Exceptions;
|
||||
|
||||
public class ImapClientPoolException : Exception
|
||||
namespace Wino.Core.Domain.Exceptions
|
||||
{
|
||||
public ImapClientPoolException()
|
||||
public class ImapClientPoolException : Exception
|
||||
{
|
||||
}
|
||||
|
||||
public ImapClientPoolException(string message, CustomServerInformation customServerInformation, string protocolLog) : base(message)
|
||||
{
|
||||
CustomServerInformation = customServerInformation;
|
||||
ProtocolLog = protocolLog;
|
||||
}
|
||||
|
||||
public ImapClientPoolException(string message, string protocolLog) : base(message)
|
||||
{
|
||||
ProtocolLog = protocolLog;
|
||||
}
|
||||
|
||||
public ImapClientPoolException(Exception innerException, string protocolLog) : base(Translator.Exception_ImapClientPoolFailed, innerException)
|
||||
{
|
||||
ProtocolLog = protocolLog;
|
||||
}
|
||||
|
||||
public CustomServerInformation CustomServerInformation { get; }
|
||||
public string ProtocolLog { get; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
using Wino.Core.Domain.Models.AutoDiscovery;
|
||||
|
||||
namespace Wino.Core.Domain.Exceptions;
|
||||
|
||||
public class ImapConnectionFailedPackage
|
||||
namespace Wino.Core.Domain.Exceptions
|
||||
{
|
||||
public class ImapConnectionFailedPackage
|
||||
{
|
||||
public ImapConnectionFailedPackage(string errorMessage, string protocolLog, AutoDiscoverySettings settings)
|
||||
{
|
||||
ErrorMessage = errorMessage;
|
||||
@@ -14,4 +14,5 @@ public class ImapConnectionFailedPackage
|
||||
public AutoDiscoverySettings Settings { get; }
|
||||
public string ErrorMessage { get; set; }
|
||||
public string ProtocolLog { get; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
namespace Wino.Core.Domain.Exceptions;
|
||||
|
||||
public class ImapSynchronizerStrategyException : System.Exception
|
||||
namespace Wino.Core.Domain.Exceptions
|
||||
{
|
||||
public class ImapSynchronizerStrategyException : System.Exception
|
||||
{
|
||||
public ImapSynchronizerStrategyException(string message) : base(message)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
namespace Wino.Core.Domain.Exceptions;
|
||||
|
||||
public class ImapTestSSLCertificateException : System.Exception
|
||||
namespace Wino.Core.Domain.Exceptions
|
||||
{
|
||||
public class ImapTestSSLCertificateException : System.Exception
|
||||
{
|
||||
public ImapTestSSLCertificateException(string issuer, string expirationDateString, string validFromDateString)
|
||||
{
|
||||
Issuer = issuer;
|
||||
@@ -13,4 +13,5 @@ public class ImapTestSSLCertificateException : System.Exception
|
||||
public string ExpirationDateString { get; set; }
|
||||
public string ValidFromDateString { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
|
||||
namespace Wino.Core.Domain.Exceptions;
|
||||
|
||||
public class InvalidMoveTargetException : Exception { }
|
||||
namespace Wino.Core.Domain.Exceptions
|
||||
{
|
||||
public class InvalidMoveTargetException : Exception { }
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
namespace Wino.Core.Domain.Exceptions;
|
||||
|
||||
public class MissingAliasException : System.Exception
|
||||
namespace Wino.Core.Domain.Exceptions
|
||||
{
|
||||
public class MissingAliasException : System.Exception
|
||||
{
|
||||
public MissingAliasException() : base(Translator.Exception_MissingAlias) { }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
using System;
|
||||
|
||||
namespace Wino.Core.Domain.Exceptions;
|
||||
|
||||
public class SynchronizerEntityNotFoundException : Exception
|
||||
namespace Wino.Core.Domain.Exceptions
|
||||
{
|
||||
public class SynchronizerEntityNotFoundException : Exception
|
||||
{
|
||||
public SynchronizerEntityNotFoundException(string message) : base(message)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
using System;
|
||||
|
||||
namespace Wino.Core.Domain.Exceptions;
|
||||
|
||||
public class SynchronizerException : Exception
|
||||
namespace Wino.Core.Domain.Exceptions
|
||||
{
|
||||
public class SynchronizerException : Exception
|
||||
{
|
||||
public SynchronizerException(string message) : base(message)
|
||||
{
|
||||
}
|
||||
@@ -11,4 +11,5 @@ public class SynchronizerException : Exception
|
||||
public SynchronizerException(string message, Exception innerException) : base(message, innerException)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
namespace Wino.Core.Domain.Exceptions;
|
||||
|
||||
/// <summary>
|
||||
/// When IMAP account's system folder configuration setup is not done yet.
|
||||
/// </summary>
|
||||
public class SystemFolderConfigurationMissingException : System.Exception { }
|
||||
namespace Wino.Core.Domain.Exceptions
|
||||
{
|
||||
/// <summary>
|
||||
/// When IMAP account's system folder configuration setup is not done yet.
|
||||
/// </summary>
|
||||
public class SystemFolderConfigurationMissingException : System.Exception { }
|
||||
}
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
using System;
|
||||
using Wino.Core.Domain.Enums;
|
||||
|
||||
namespace Wino.Core.Domain.Exceptions;
|
||||
|
||||
/// <summary>
|
||||
/// Emitted when special folder is needed for an operation but it couldn't be found.
|
||||
/// </summary>
|
||||
public class UnavailableSpecialFolderException : Exception
|
||||
namespace Wino.Core.Domain.Exceptions
|
||||
{
|
||||
/// <summary>
|
||||
/// Emitted when special folder is needed for an operation but it couldn't be found.
|
||||
/// </summary>
|
||||
public class UnavailableSpecialFolderException : Exception
|
||||
{
|
||||
public UnavailableSpecialFolderException(SpecialFolderType specialFolderType, Guid accountId)
|
||||
{
|
||||
SpecialFolderType = specialFolderType;
|
||||
@@ -16,4 +16,5 @@ public class UnavailableSpecialFolderException : Exception
|
||||
|
||||
public SpecialFolderType SpecialFolderType { get; }
|
||||
public Guid AccountId { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
using System;
|
||||
|
||||
namespace Wino.Core.Domain.Exceptions;
|
||||
|
||||
/// <summary>
|
||||
/// All server crash types. Wino Server ideally should not throw anything else than this Exception type.
|
||||
/// </summary>
|
||||
public class WinoServerException : Exception
|
||||
namespace Wino.Core.Domain.Exceptions
|
||||
{
|
||||
/// <summary>
|
||||
/// All server crash types. Wino Server ideally should not throw anything else than this Exception type.
|
||||
/// </summary>
|
||||
public class WinoServerException : Exception
|
||||
{
|
||||
public WinoServerException(string message) : base(message) { }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
using System;
|
||||
using Wino.Core.Domain.Models.Calendar;
|
||||
|
||||
namespace Wino.Core.Domain.Extensions;
|
||||
|
||||
public static class DateTimeExtensions
|
||||
namespace Wino.Core.Domain.Extensions
|
||||
{
|
||||
public static class DateTimeExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// Returns a date range for the month of the given date.
|
||||
/// </summary>
|
||||
@@ -29,4 +29,5 @@ public static class DateTimeExtensions
|
||||
// Start loading from this date instead of visible date.
|
||||
return date.AddDays(-diff).Date;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Wino.Core.Domain.Extensions;
|
||||
|
||||
public static class ExceptionExtensions
|
||||
namespace Wino.Core.Domain.Extensions
|
||||
{
|
||||
public static class ExceptionExtensions
|
||||
{
|
||||
public static IEnumerable<Exception> GetInnerExceptions(this Exception ex)
|
||||
{
|
||||
if (ex == null)
|
||||
@@ -20,4 +20,5 @@ public static class ExceptionExtensions
|
||||
}
|
||||
while (innerException != null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
|
||||
namespace Wino.Core.Domain.Extensions;
|
||||
|
||||
public static class MimeExtensions
|
||||
namespace Wino.Core.Domain.Extensions
|
||||
{
|
||||
public static class MimeExtensions
|
||||
{
|
||||
public static string GetBase64MimeMessage(this MimeKit.MimeMessage message)
|
||||
{
|
||||
using MemoryStream memoryStream = new();
|
||||
@@ -16,4 +16,5 @@ public static class MimeExtensions
|
||||
|
||||
public static MimeKit.MimeMessage GetMimeMessageFromBase64(this string base64)
|
||||
=> MimeKit.MimeMessage.Load(new System.IO.MemoryStream(Convert.FromBase64String(base64)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
using System;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces;
|
||||
|
||||
public interface IAccountCalendar
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
public interface IAccountCalendar
|
||||
{
|
||||
string Name { get; set; }
|
||||
string TextColorHex { get; set; }
|
||||
string BackgroundColorHex { get; set; }
|
||||
@@ -12,4 +12,5 @@ public interface IAccountCalendar
|
||||
string RemoteCalendarId { get; set; }
|
||||
bool IsExtended { get; set; }
|
||||
Guid Id { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
{
|
||||
public interface IAccountCreationDialog
|
||||
{
|
||||
Task ShowDialogAsync(CancellationTokenSource cancellationTokenSource);
|
||||
void Complete(bool cancel);
|
||||
AccountCreationDialogState State { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user