16
Wino.Core.Domain/Entities/Calendar/AccountCalendar.cs
Normal file
16
Wino.Core.Domain/Entities/Calendar/AccountCalendar.cs
Normal file
@@ -0,0 +1,16 @@
|
||||
using System;
|
||||
using SQLite;
|
||||
|
||||
namespace Wino.Core.Domain.Entities.Calendar
|
||||
{
|
||||
public class AccountCalendar
|
||||
{
|
||||
[PrimaryKey]
|
||||
public Guid Id { get; set; }
|
||||
|
||||
public Guid AccountId { get; set; }
|
||||
public string Name { get; set; }
|
||||
public string ColorHex { get; set; }
|
||||
public string TimeZoneId { get; set; }
|
||||
}
|
||||
}
|
||||
16
Wino.Core.Domain/Entities/Calendar/Attendee.cs
Normal file
16
Wino.Core.Domain/Entities/Calendar/Attendee.cs
Normal file
@@ -0,0 +1,16 @@
|
||||
using System;
|
||||
using SQLite;
|
||||
using Wino.Core.Domain.Enums;
|
||||
|
||||
namespace Wino.Core.Domain.Entities.Calendar
|
||||
{
|
||||
public class Attendee
|
||||
{
|
||||
[PrimaryKey]
|
||||
public Guid Id { get; set; }
|
||||
public Guid EventId { get; set; }
|
||||
public Guid ContactId { get; set; }
|
||||
public AttendeeStatus Status { get; set; }
|
||||
public bool IsOrganizer { get; set; }
|
||||
}
|
||||
}
|
||||
24
Wino.Core.Domain/Entities/Calendar/CalendarItem.cs
Normal file
24
Wino.Core.Domain/Entities/Calendar/CalendarItem.cs
Normal file
@@ -0,0 +1,24 @@
|
||||
using System;
|
||||
using SQLite;
|
||||
using Wino.Core.Domain.Enums;
|
||||
|
||||
namespace Wino.Core.Domain.Entities.Calendar
|
||||
{
|
||||
public class CalendarItem
|
||||
{
|
||||
[PrimaryKey]
|
||||
public Guid Id { get; set; }
|
||||
public string Title { get; set; }
|
||||
public string Description { get; set; }
|
||||
public string Location { get; set; }
|
||||
public DateTimeOffset StartTime { get; set; }
|
||||
public DateTimeOffset EndTime { get; set; }
|
||||
public bool IsAllDay { get; set; }
|
||||
public Guid? RecurrenceRuleId { 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; }
|
||||
}
|
||||
}
|
||||
20
Wino.Core.Domain/Entities/Calendar/RecurrenceRule.cs
Normal file
20
Wino.Core.Domain/Entities/Calendar/RecurrenceRule.cs
Normal file
@@ -0,0 +1,20 @@
|
||||
using System;
|
||||
using SQLite;
|
||||
using Wino.Core.Domain.Enums;
|
||||
|
||||
namespace Wino.Core.Domain.Entities.Calendar
|
||||
{
|
||||
public class RecurrenceRule
|
||||
{
|
||||
[PrimaryKey]
|
||||
public Guid Id { get; set; }
|
||||
|
||||
public Guid CalendarItemId { get; set; }
|
||||
public CalendarItemRecurrenceFrequency Frequency { get; set; }
|
||||
public int Interval { get; set; }
|
||||
public string DaysOfWeek { get; set; }
|
||||
public DateTimeOffset StartDate { get; set; }
|
||||
public DateTimeOffset EndDate { get; set; }
|
||||
public int Occurrences { get; set; }
|
||||
}
|
||||
}
|
||||
16
Wino.Core.Domain/Entities/Calendar/Reminder.cs
Normal file
16
Wino.Core.Domain/Entities/Calendar/Reminder.cs
Normal file
@@ -0,0 +1,16 @@
|
||||
using System;
|
||||
using SQLite;
|
||||
using Wino.Core.Domain.Enums;
|
||||
|
||||
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,7 +1,7 @@
|
||||
using System;
|
||||
using SQLite;
|
||||
|
||||
namespace Wino.Core.Domain.Entities
|
||||
namespace Wino.Core.Domain.Entities.Mail
|
||||
{
|
||||
public class AccountSignature
|
||||
{
|
||||
@@ -1,7 +1,7 @@
|
||||
using System;
|
||||
using SQLite;
|
||||
|
||||
namespace Wino.Core.Domain.Entities
|
||||
namespace Wino.Core.Domain.Entities.Mail
|
||||
{
|
||||
public class RemoteAccountAlias
|
||||
{
|
||||
@@ -1,10 +1,11 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using SQLite;
|
||||
using Wino.Core.Domain.Entities.Shared;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Models.MailItem;
|
||||
|
||||
namespace Wino.Core.Domain.Entities
|
||||
namespace Wino.Core.Domain.Entities.Mail
|
||||
{
|
||||
/// <summary>
|
||||
/// Summary of the parsed MIME messages.
|
||||
@@ -5,7 +5,7 @@ using SQLite;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Models.Folders;
|
||||
|
||||
namespace Wino.Core.Domain.Entities
|
||||
namespace Wino.Core.Domain.Entities.Mail
|
||||
{
|
||||
[DebuggerDisplay("{FolderName} - {SpecialFolderType}")]
|
||||
public class MailItemFolder : IMailItemFolder
|
||||
@@ -1,7 +1,7 @@
|
||||
using System;
|
||||
using SQLite;
|
||||
|
||||
namespace Wino.Core.Domain.Entities
|
||||
namespace Wino.Core.Domain.Entities.Mail
|
||||
{
|
||||
public class MergedInbox
|
||||
{
|
||||
@@ -2,7 +2,7 @@
|
||||
using System.Collections.Generic;
|
||||
using SQLite;
|
||||
|
||||
namespace Wino.Core.Domain.Entities
|
||||
namespace Wino.Core.Domain.Entities.Shared
|
||||
{
|
||||
/// <summary>
|
||||
/// Back storage for simple name-address book.
|
||||
@@ -2,7 +2,7 @@
|
||||
using SQLite;
|
||||
using Wino.Core.Domain.Enums;
|
||||
|
||||
namespace Wino.Core.Domain.Entities
|
||||
namespace Wino.Core.Domain.Entities.Shared
|
||||
{
|
||||
public class CustomServerInformation
|
||||
{
|
||||
@@ -1,8 +1,9 @@
|
||||
using System;
|
||||
using SQLite;
|
||||
using Wino.Core.Domain.Entities.Mail;
|
||||
using Wino.Core.Domain.Enums;
|
||||
|
||||
namespace Wino.Core.Domain.Entities
|
||||
namespace Wino.Core.Domain.Entities.Shared
|
||||
{
|
||||
public class MailAccount
|
||||
{
|
||||
@@ -1,7 +1,7 @@
|
||||
using System;
|
||||
using SQLite;
|
||||
|
||||
namespace Wino.Core.Domain.Entities
|
||||
namespace Wino.Core.Domain.Entities.Shared
|
||||
{
|
||||
public class MailAccountPreferences
|
||||
{
|
||||
@@ -2,7 +2,7 @@
|
||||
using SQLite;
|
||||
using Wino.Core.Domain.Models.Authentication;
|
||||
|
||||
namespace Wino.Core.Domain.Entities
|
||||
namespace Wino.Core.Domain.Entities.Shared
|
||||
{
|
||||
public class TokenInformation : TokenInformationBase
|
||||
{
|
||||
9
Wino.Core.Domain/Enums/AttendeeStatus.cs
Normal file
9
Wino.Core.Domain/Enums/AttendeeStatus.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum AttendeeStatus
|
||||
{
|
||||
Accepted,
|
||||
Tentative,
|
||||
Declined
|
||||
}
|
||||
}
|
||||
11
Wino.Core.Domain/Enums/CalendarDisplayType.cs
Normal file
11
Wino.Core.Domain/Enums/CalendarDisplayType.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum CalendarDisplayType
|
||||
{
|
||||
Day,
|
||||
Week,
|
||||
WorkWeek,
|
||||
Month,
|
||||
Year
|
||||
}
|
||||
}
|
||||
11
Wino.Core.Domain/Enums/CalendarInitInitiative.cs
Normal file
11
Wino.Core.Domain/Enums/CalendarInitInitiative.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
/// <summary>
|
||||
/// Trigger to load more data.
|
||||
/// </summary>
|
||||
public enum CalendarInitInitiative
|
||||
{
|
||||
User,
|
||||
App
|
||||
}
|
||||
}
|
||||
10
Wino.Core.Domain/Enums/CalendarItemRecurrenceFrequency.cs
Normal file
10
Wino.Core.Domain/Enums/CalendarItemRecurrenceFrequency.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum CalendarItemRecurrenceFrequency
|
||||
{
|
||||
Daily,
|
||||
Weekly,
|
||||
Monthly,
|
||||
Yearly
|
||||
}
|
||||
}
|
||||
8
Wino.Core.Domain/Enums/CalendarItemReminderType.cs
Normal file
8
Wino.Core.Domain/Enums/CalendarItemReminderType.cs
Normal file
@@ -0,0 +1,8 @@
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum CalendarItemReminderType
|
||||
{
|
||||
Popup,
|
||||
Email
|
||||
}
|
||||
}
|
||||
9
Wino.Core.Domain/Enums/CalendarItemStatus.cs
Normal file
9
Wino.Core.Domain/Enums/CalendarItemStatus.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum CalendarItemStatus
|
||||
{
|
||||
Confirmed,
|
||||
Tentative,
|
||||
Cancelled,
|
||||
}
|
||||
}
|
||||
8
Wino.Core.Domain/Enums/CalendarItemVisibility.cs
Normal file
8
Wino.Core.Domain/Enums/CalendarItemVisibility.cs
Normal file
@@ -0,0 +1,8 @@
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum CalendarItemVisibility
|
||||
{
|
||||
Public,
|
||||
Private
|
||||
}
|
||||
}
|
||||
12
Wino.Core.Domain/Enums/CalendarLoadDirection.cs
Normal file
12
Wino.Core.Domain/Enums/CalendarLoadDirection.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
/// <summary>
|
||||
/// Which way in time to load more data for calendar.
|
||||
/// </summary>
|
||||
public enum CalendarLoadDirection
|
||||
{
|
||||
Replace,
|
||||
Previous,
|
||||
Next
|
||||
}
|
||||
}
|
||||
8
Wino.Core.Domain/Enums/DayHeaderDisplayType.cs
Normal file
8
Wino.Core.Domain/Enums/DayHeaderDisplayType.cs
Normal file
@@ -0,0 +1,8 @@
|
||||
namespace Wino.Core.Domain.Enums
|
||||
{
|
||||
public enum DayHeaderDisplayType
|
||||
{
|
||||
TwelveHour,
|
||||
TwentyFourHour,
|
||||
}
|
||||
}
|
||||
@@ -23,6 +23,10 @@
|
||||
LanguageTimePage,
|
||||
AppPreferencesPage,
|
||||
SettingOptionsPage,
|
||||
AliasManagementPage
|
||||
AliasManagementPage,
|
||||
|
||||
// Calendar
|
||||
CalendarPage,
|
||||
CalendarSettingsPage,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
using System;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Entities.Shared;
|
||||
|
||||
namespace Wino.Core.Domain.Exceptions
|
||||
{
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Entities.Mail;
|
||||
using Wino.Core.Domain.Entities.Shared;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Entities.Shared;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Entities.Mail;
|
||||
using Wino.Core.Domain.Entities.Shared;
|
||||
using Wino.Core.Domain.Models.Accounts;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
|
||||
@@ -7,5 +7,6 @@
|
||||
bool ContainsResourceKey(string resourceKey);
|
||||
void ReplaceResource(string resourceKey, object resource);
|
||||
T GetLastResource();
|
||||
TReturnType GetResource<TReturnType>(string resourceKey);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
using System.Threading.Tasks;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Entities.Shared;
|
||||
using Wino.Core.Domain.Enums;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using MailKit;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Entities.Shared;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Models.Accounts;
|
||||
using Wino.Core.Domain.Models.MailItem;
|
||||
@@ -9,7 +9,7 @@ using Wino.Core.Domain.Models.Synchronization;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
public interface IBaseSynchronizer
|
||||
public interface IBaseMailSynchronizer
|
||||
{
|
||||
/// <summary>
|
||||
/// Account that is assigned for this synchronizer.
|
||||
|
||||
6
Wino.Core.Domain/Interfaces/ICalendarDialogService.cs
Normal file
6
Wino.Core.Domain/Interfaces/ICalendarDialogService.cs
Normal file
@@ -0,0 +1,6 @@
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
public interface ICalendarDialogService : IDialogServiceBase
|
||||
{
|
||||
}
|
||||
}
|
||||
14
Wino.Core.Domain/Interfaces/ICalendarItem.cs
Normal file
14
Wino.Core.Domain/Interfaces/ICalendarItem.cs
Normal file
@@ -0,0 +1,14 @@
|
||||
using System;
|
||||
using Itenso.TimePeriod;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
public interface ICalendarItem
|
||||
{
|
||||
string Name { get; }
|
||||
Guid Id { get; }
|
||||
DateTime StartTime { get; }
|
||||
DateTime EndTime { get; }
|
||||
TimeRange Period { get; }
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Entities.Mail;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
using System.Threading.Tasks;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Entities.Shared;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
|
||||
25
Wino.Core.Domain/Interfaces/IDialogServiceBase.cs
Normal file
25
Wino.Core.Domain/Interfaces/IDialogServiceBase.cs
Normal file
@@ -0,0 +1,25 @@
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using Wino.Core.Domain.Enums;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
public interface IDialogServiceBase
|
||||
{
|
||||
Task<string> PickWindowsFolderAsync();
|
||||
Task<byte[]> PickWindowsFileContentAsync(params object[] typeFilters);
|
||||
Task<bool> 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<string> ShowTextInputDialogAsync(string currentInput, string dialogTitle, string dialogDescription, string primaryButtonText);
|
||||
Task<bool> ShowWinoCustomMessageDialogAsync(string title,
|
||||
string description,
|
||||
string approveButtonText,
|
||||
WinoCustomMessageDialogIcon? icon,
|
||||
string cancelButtonText = "",
|
||||
string dontAskAgainConfigurationKey = "");
|
||||
Task<bool> ShowCustomThemeBuilderDialogAsync();
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
using System.Collections.Generic;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Entities.Shared;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Models.Folders;
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Entities.Mail;
|
||||
using Wino.Core.Domain.Entities.Shared;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Models.Accounts;
|
||||
using Wino.Core.Domain.Models.Folders;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
using System.Threading.Tasks;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Entities.Shared;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
|
||||
@@ -2,33 +2,24 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Threading.Tasks;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Entities.Mail;
|
||||
using Wino.Core.Domain.Entities.Shared;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Models.Accounts;
|
||||
using Wino.Core.Domain.Models.Folders;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
public interface IDialogService
|
||||
public interface IMailDialogService : IDialogServiceBase
|
||||
{
|
||||
Task<string> PickWindowsFolderAsync();
|
||||
Task<byte[]> PickWindowsFileContentAsync(params object[] typeFilters);
|
||||
Task<bool> ShowConfirmationDialogAsync(string question, string title, string confirmationButtonTitle);
|
||||
Task<bool> ShowHardDeleteConfirmationAsync();
|
||||
Task HandleSystemFolderConfigurationDialogAsync(Guid accountId, IFolderService folderService);
|
||||
Task<bool> ShowCustomThemeBuilderDialogAsync();
|
||||
|
||||
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();
|
||||
|
||||
// Custom dialogs
|
||||
Task<IMailItemFolder> ShowMoveMailFolderDialogAsync(List<IMailItemFolder> availableFolders);
|
||||
Task<AccountCreationDialogResult> ShowNewAccountMailProviderDialogAsync(List<IProviderDetail> availableProviders);
|
||||
IAccountCreationDialog GetAccountCreationDialog(MailProviderType type);
|
||||
Task<string> ShowTextInputDialogAsync(string currentInput, string dialogTitle, string dialogDescription, string primaryButtonText);
|
||||
|
||||
Task<MailAccount> ShowEditAccountDialogAsync(MailAccount account);
|
||||
Task<MailAccount> ShowAccountPickerDialogAsync(List<MailAccount> availableAccounts);
|
||||
|
||||
@@ -58,11 +49,6 @@ namespace Wino.Core.Domain.Interfaces
|
||||
/// </summary>
|
||||
/// <returns>Created alias model if not canceled.</returns>
|
||||
Task<ICreateAccountAliasDialog> ShowCreateAccountAliasDialogAsync();
|
||||
Task<bool> ShowWinoCustomMessageDialogAsync(string title,
|
||||
string description,
|
||||
string approveButtonText,
|
||||
WinoCustomMessageDialogIcon? icon,
|
||||
string cancelButtonText = "",
|
||||
string dontAskAgainConfigurationKey = "");
|
||||
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,8 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Entities.Mail;
|
||||
using Wino.Core.Domain.Entities.Shared;
|
||||
using Wino.Core.Domain.Models.MailItem;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Models.Calendar;
|
||||
using Wino.Core.Domain.Models.Reader;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
@@ -11,6 +12,37 @@ namespace Wino.Core.Domain.Interfaces
|
||||
/// </summary>
|
||||
event EventHandler<string> PreferenceChanged;
|
||||
|
||||
#region Common
|
||||
|
||||
/// <summary>
|
||||
/// Setting: Whether logs are enabled or not.
|
||||
/// </summary>
|
||||
bool IsLoggingEnabled { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Setting: Display language for the application.
|
||||
/// </summary>
|
||||
AppLanguage CurrentLanguage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Setting: Whether the navigation pane is opened on the last session or not.
|
||||
/// </summary>
|
||||
bool IsNavigationPaneOpened { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Setting: Gets or sets what should happen to server app when the client is terminated.
|
||||
/// </summary>
|
||||
ServerBackgroundMode ServerTerminationBehavior { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Setting: Preferred time format for mail or calendar header display.
|
||||
/// </summary>
|
||||
bool Prefer24HourTimeFormat { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Mail
|
||||
|
||||
/// <summary>
|
||||
/// Setting: For changing the mail display container mode.
|
||||
/// </summary>
|
||||
@@ -21,11 +53,6 @@ namespace Wino.Core.Domain.Interfaces
|
||||
/// </summary>
|
||||
MailMarkAsOption MarkAsPreference { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Setting: Preferred time format for mail display.
|
||||
/// </summary>
|
||||
bool Prefer24HourTimeFormat { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Setting: How many seconds should be waited on rendering page to mark item as read.
|
||||
/// </summary>
|
||||
@@ -101,11 +128,6 @@ namespace Wino.Core.Domain.Interfaces
|
||||
/// </summary>
|
||||
MailOperation RightHoverAction { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Setting: Whether logs are enabled or not.
|
||||
/// </summary>
|
||||
bool IsLoggingEnabled { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Setting: Whether Mailkit Protocol Logger is enabled for ImapTestService or not.
|
||||
/// </summary>
|
||||
@@ -116,10 +138,7 @@ namespace Wino.Core.Domain.Interfaces
|
||||
/// </summary>
|
||||
Guid? StartupEntityId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Setting: Display language for the application.
|
||||
/// </summary>
|
||||
AppLanguage CurrentLanguage { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Setting: Display font for the mail reader.
|
||||
@@ -141,24 +160,31 @@ namespace Wino.Core.Domain.Interfaces
|
||||
/// </summary>
|
||||
int ComposerFontSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Setting: Whether the navigation pane is opened on the last session or not.
|
||||
/// </summary>
|
||||
bool IsNavigationPaneOpened { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Setting: Whether the next item should be automatically selected once the current item is moved or removed.
|
||||
/// </summary>
|
||||
bool AutoSelectNextItem { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Setting: Gets or sets what should happen to server app when the client is terminated.
|
||||
/// </summary>
|
||||
ServerBackgroundMode ServerTerminationBehavior { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Setting: Whether the mail list action bar is enabled or not.
|
||||
/// </summary>
|
||||
bool IsMailListActionBarEnabled { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Calendar
|
||||
|
||||
DayOfWeek FirstDayOfWeek { get; set; }
|
||||
TimeSpan WorkingHourStart { get; set; }
|
||||
TimeSpan WorkingHourEnd { get; set; }
|
||||
DayOfWeek WorkingDayStart { get; set; }
|
||||
DayOfWeek WorkingDayEnd { get; set; }
|
||||
double HourHeight { get; set; }
|
||||
|
||||
CalendarSettings GetCurrentCalendarSettings();
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
using System.Collections.Generic;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Entities.Mail;
|
||||
using Wino.Core.Domain.Enums;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
|
||||
10
Wino.Core.Domain/Interfaces/ISettingsBuilderService.cs
Normal file
10
Wino.Core.Domain/Interfaces/ISettingsBuilderService.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
using System.Collections.Generic;
|
||||
using Wino.Core.Domain.Models.Settings;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
public interface ISettingsBuilderService
|
||||
{
|
||||
List<SettingOption> GetSettingItems();
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Entities.Mail;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using Wino.Core.Domain.Enums;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
@@ -43,5 +44,15 @@ namespace Wino.Core.Domain.Interfaces
|
||||
/// Setting: Mail list pane length for listing mails.
|
||||
/// </summary>
|
||||
double MailListPaneLength { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Setting: Calendar display type.
|
||||
/// </summary>
|
||||
CalendarDisplayType CalendarDisplayType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Setting: Calendar display count for the day view.
|
||||
/// </summary>
|
||||
int DayDisplayCount { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
public interface ISynchronizerFactory
|
||||
{
|
||||
Task<IBaseSynchronizer> GetAccountSynchronizerAsync(Guid accountId);
|
||||
Task<IBaseMailSynchronizer> GetAccountSynchronizerAsync(Guid accountId);
|
||||
Task InitializeAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Entities.Mail;
|
||||
using Wino.Core.Domain.Models.Folders;
|
||||
using Wino.Core.Domain.Models.MailItem;
|
||||
|
||||
|
||||
@@ -1,18 +1,16 @@
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Models.MailItem;
|
||||
using System;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Models.Navigation;
|
||||
|
||||
namespace Wino.Core.Domain.Interfaces
|
||||
{
|
||||
public interface IWinoNavigationService
|
||||
public interface INavigationService
|
||||
{
|
||||
bool Navigate(WinoPage page,
|
||||
object parameter = null,
|
||||
NavigationReferenceFrame frame = NavigationReferenceFrame.ShellFrame,
|
||||
NavigationTransitionType transition = NavigationTransitionType.None);
|
||||
void NavigateCompose(IMailItem mailItem, NavigationTransitionType transition = NavigationTransitionType.None);
|
||||
void NavigateRendering(IMailItem mailItem, NavigationTransitionType transition = NavigationTransitionType.None);
|
||||
void NavigateRendering(MimeMessageInformation mimeMessageInformation, NavigationTransitionType transition = NavigationTransitionType.None);
|
||||
void NavigateFolder(NavigateMailFolderEventArgs args);
|
||||
|
||||
Type GetPageType(WinoPage winoPage);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ namespace Wino.Core.Domain.Models.Accounts
|
||||
|
||||
public string Description { get; }
|
||||
|
||||
public string ProviderImage => $"ms-appx:///Assets/Providers/{Type}.png";
|
||||
public string ProviderImage => $"ms-appx:///Wino.Core.UWP/Assets/Providers/{Type}.png";
|
||||
|
||||
public bool IsSupported => Type == MailProviderType.Outlook || Type == MailProviderType.Gmail || Type == MailProviderType.IMAP4;
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text.Json.Serialization;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Entities.Shared;
|
||||
|
||||
namespace Wino.Core.Domain.Models.AutoDiscovery
|
||||
{
|
||||
|
||||
26
Wino.Core.Domain/Models/Calendar/CalendarDayModel.cs
Normal file
26
Wino.Core.Domain/Models/Calendar/CalendarDayModel.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
using System;
|
||||
using System.Collections.ObjectModel;
|
||||
using Itenso.TimePeriod;
|
||||
using Wino.Core.Domain.Interfaces;
|
||||
|
||||
namespace Wino.Core.Domain.Models.Calendar
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a day in the calendar.
|
||||
/// Can hold events, appointments, wheather status etc.
|
||||
/// </summary>
|
||||
public class CalendarDayModel
|
||||
{
|
||||
public TimeRange Period { get; }
|
||||
public ObservableCollection<ICalendarItem> Events { get; } = new ObservableCollection<ICalendarItem>();
|
||||
public CalendarDayModel(DateTime representingDate, CalendarRenderOptions calendarRenderOptions)
|
||||
{
|
||||
RepresentingDate = representingDate;
|
||||
Period = new TimeRange(representingDate, representingDate.AddDays(1));
|
||||
CalendarRenderOptions = calendarRenderOptions;
|
||||
}
|
||||
|
||||
public DateTime RepresentingDate { get; }
|
||||
public CalendarRenderOptions CalendarRenderOptions { get; }
|
||||
}
|
||||
}
|
||||
24
Wino.Core.Domain/Models/Calendar/CalendarItem.cs
Normal file
24
Wino.Core.Domain/Models/Calendar/CalendarItem.cs
Normal file
@@ -0,0 +1,24 @@
|
||||
using System;
|
||||
using Itenso.TimePeriod;
|
||||
using Wino.Core.Domain.Interfaces;
|
||||
|
||||
namespace Wino.Core.Domain.Models.Calendar
|
||||
{
|
||||
public class CalendarItem : ICalendarItem
|
||||
{
|
||||
public string Name { get; set; }
|
||||
public CalendarItem(DateTime startTime, DateTime endTime)
|
||||
{
|
||||
StartTime = startTime;
|
||||
EndTime = endTime;
|
||||
Period = new TimeRange(startTime, endTime);
|
||||
}
|
||||
|
||||
public DateTime StartTime { get; }
|
||||
public DateTime EndTime { get; }
|
||||
|
||||
public Guid Id { get; } = Guid.NewGuid();
|
||||
|
||||
public TimeRange Period { get; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
namespace Wino.Core.Domain.Models.Calendar
|
||||
{
|
||||
public class CalendarPageNavigationArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// When the app launches, automatically request the default calendar navigation options.
|
||||
/// </summary>
|
||||
public bool RequestDefaultNavigation { get; set; }
|
||||
}
|
||||
}
|
||||
14
Wino.Core.Domain/Models/Calendar/CalendarRenderOptions.cs
Normal file
14
Wino.Core.Domain/Models/Calendar/CalendarRenderOptions.cs
Normal file
@@ -0,0 +1,14 @@
|
||||
namespace Wino.Core.Domain.Models.Calendar
|
||||
{
|
||||
public class CalendarRenderOptions
|
||||
{
|
||||
public CalendarRenderOptions(DateRange dateRange, CalendarSettings calendarSettings)
|
||||
{
|
||||
DateRange = dateRange;
|
||||
CalendarSettings = calendarSettings;
|
||||
}
|
||||
public int TotalDayCount => DateRange.TotalDays;
|
||||
public DateRange DateRange { get; }
|
||||
public CalendarSettings CalendarSettings { get; }
|
||||
}
|
||||
}
|
||||
15
Wino.Core.Domain/Models/Calendar/CalendarSettings.cs
Normal file
15
Wino.Core.Domain/Models/Calendar/CalendarSettings.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using Wino.Core.Domain.Enums;
|
||||
|
||||
namespace Wino.Core.Domain.Models.Calendar
|
||||
{
|
||||
public record CalendarSettings(DayOfWeek FirstDayOfWeek,
|
||||
List<DayOfWeek> WorkingDays,
|
||||
TimeSpan WorkingHourStart,
|
||||
TimeSpan WorkingHourEnd,
|
||||
double HourHeight,
|
||||
DayHeaderDisplayType DayHeaderDisplayType,
|
||||
CultureInfo CultureInfo);
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
using System;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Models.Calendar;
|
||||
|
||||
namespace Wino.Calendar.Models.CalendarTypeStrategies
|
||||
{
|
||||
public abstract class BaseCalendarTypeDrawingStrategy
|
||||
{
|
||||
public CalendarSettings Settings { get; }
|
||||
public CalendarDisplayType HandlingType { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Day range of the pre-rendered items.
|
||||
/// </summary>
|
||||
public abstract DateRange GetRenderDateRange(DateTime DisplayDate, int DayDisplayCount);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the previous date range for rendering.
|
||||
/// For example, 1 week view with 7 days will return -7 <> 0 days.
|
||||
/// </summary>
|
||||
/// <param name="CurrentDateRange">Current displayed date range.</param>
|
||||
/// <param name="DayDisplayCount">Day display count/</param>
|
||||
public abstract DateRange GetPreviousDateRange(DateRange CurrentDateRange, int DayDisplayCount);
|
||||
|
||||
public abstract DateRange GetNextDateRange(DateRange CurrentDateRange, int DayDisplayCount);
|
||||
|
||||
/// <summary>
|
||||
/// How many items should be placed in 1 FlipViewItem.
|
||||
/// </summary>
|
||||
public abstract int GetRenderDayCount(DateTime DisplayDate, int DayDisplayCount);
|
||||
|
||||
protected BaseCalendarTypeDrawingStrategy(CalendarSettings settings, CalendarDisplayType handlingType)
|
||||
{
|
||||
Settings = settings;
|
||||
HandlingType = handlingType;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
using System;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Models.Calendar;
|
||||
|
||||
namespace Wino.Calendar.Models.CalendarTypeStrategies
|
||||
{
|
||||
public class DayCalendarDrawingStrategy : BaseCalendarTypeDrawingStrategy
|
||||
{
|
||||
public DayCalendarDrawingStrategy(CalendarSettings settings) : base(settings, CalendarDisplayType.Day)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override DateRange GetNextDateRange(DateRange CurrentDateRange, int DayDisplayCount)
|
||||
{
|
||||
return new DateRange(CurrentDateRange.EndDate, CurrentDateRange.EndDate.AddDays(DayDisplayCount * 5));
|
||||
}
|
||||
|
||||
public override DateRange GetPreviousDateRange(DateRange CurrentDateRange, int DayDisplayCount)
|
||||
{
|
||||
return new DateRange(CurrentDateRange.StartDate.AddDays(-DayDisplayCount * 5), CurrentDateRange.StartDate);
|
||||
}
|
||||
|
||||
public override DateRange GetRenderDateRange(DateTime DisplayDate, int DayDisplayCount)
|
||||
{
|
||||
// Add good amount of days to the left and right of the DisplayDate.
|
||||
|
||||
var start = DisplayDate.AddDays(-4 * DayDisplayCount);
|
||||
var end = DisplayDate.AddDays(4 * DayDisplayCount);
|
||||
|
||||
return new DateRange(start, end);
|
||||
}
|
||||
|
||||
public override int GetRenderDayCount(DateTime DisplayDate, int DayDisplayCount) => DayDisplayCount;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
using System;
|
||||
using Wino.Core.Domain.Models.Calendar;
|
||||
|
||||
namespace Wino.Calendar.Models.CalendarTypeStrategies
|
||||
{
|
||||
public class WeekCalendarDrawingStrategy : BaseCalendarTypeDrawingStrategy
|
||||
{
|
||||
public WeekCalendarDrawingStrategy(CalendarSettings settings) : base(settings, Core.Domain.Enums.CalendarDisplayType.Week) { }
|
||||
|
||||
public override DateRange GetNextDateRange(DateRange CurrentDateRange, int DayDisplayCount)
|
||||
=> new DateRange(CurrentDateRange.EndDate, CurrentDateRange.EndDate.AddDays(7 * 2));
|
||||
|
||||
public override DateRange GetPreviousDateRange(DateRange CurrentDateRange, int DayDisplayCount)
|
||||
=> new DateRange(CurrentDateRange.StartDate.AddDays(-7 * 2), CurrentDateRange.StartDate);
|
||||
|
||||
public override DateRange GetRenderDateRange(DateTime DisplayDate, int DayDisplayCount)
|
||||
{
|
||||
// Detect the first day of the week that contains the selected date.
|
||||
DayOfWeek firstDayOfWeek = Settings.FirstDayOfWeek;
|
||||
|
||||
int diff = (7 + (DisplayDate.DayOfWeek - Settings.FirstDayOfWeek)) % 7;
|
||||
|
||||
// Start loading from this date instead of visible date.
|
||||
var weekStartDate = DisplayDate.AddDays(-diff).Date;
|
||||
|
||||
// Load -+ 14 days
|
||||
var startDate = weekStartDate.AddDays(-14);
|
||||
var endDte = weekStartDate.AddDays(14);
|
||||
|
||||
return new DateRange(startDate, endDte);
|
||||
}
|
||||
|
||||
public override int GetRenderDayCount(DateTime DisplayDate, int DayDisplayCount) => 7;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
using System;
|
||||
|
||||
namespace Wino.Core.Domain.Models.Calendar
|
||||
{
|
||||
/// <summary>
|
||||
/// Contains the clicked date on the calendar view.
|
||||
/// </summary>
|
||||
/// <param name="ClickedDate">Requested date.</param>
|
||||
public record CalendarViewDayClickedEventArgs(DateTime ClickedDate);
|
||||
}
|
||||
42
Wino.Core.Domain/Models/Calendar/DateRange.cs
Normal file
42
Wino.Core.Domain/Models/Calendar/DateRange.cs
Normal file
@@ -0,0 +1,42 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
|
||||
namespace Wino.Core.Domain.Models.Calendar
|
||||
{
|
||||
public class DateRange
|
||||
{
|
||||
public DateRange(DateTime startDate, DateTime endDate)
|
||||
{
|
||||
StartDate = startDate;
|
||||
EndDate = endDate;
|
||||
}
|
||||
|
||||
public DateTime StartDate { get; }
|
||||
public DateTime EndDate { get; }
|
||||
|
||||
public int TotalDays => (EndDate - StartDate).Days;
|
||||
|
||||
public override string ToString() => $"{StartDate.ToString("dd MMMM")} - {EndDate.ToString("dd MMMM")}";
|
||||
|
||||
public bool IsInRange(DateTime date)
|
||||
{
|
||||
return date >= StartDate && date <= EndDate;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the most visible month index in the visible date range.
|
||||
/// </summary>
|
||||
public int GetMostVisibleMonthIndex()
|
||||
{
|
||||
var dateRange = Enumerable.Range(0, (EndDate - StartDate).Days + 1).Select(offset => StartDate.AddDays(offset));
|
||||
|
||||
var groupedByMonth = dateRange.GroupBy(date => date.Month)
|
||||
.Select(g => new { Month = g.Key, DayCount = g.Count() });
|
||||
|
||||
// Find the month with the maximum count of days
|
||||
var mostVisibleMonth = groupedByMonth.OrderByDescending(g => g.DayCount).FirstOrDefault();
|
||||
|
||||
return mostVisibleMonth?.Month ?? -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
14
Wino.Core.Domain/Models/Calendar/DayHeaderRenderModel.cs
Normal file
14
Wino.Core.Domain/Models/Calendar/DayHeaderRenderModel.cs
Normal file
@@ -0,0 +1,14 @@
|
||||
namespace Wino.Core.Domain.Models.Calendar
|
||||
{
|
||||
public class DayHeaderRenderModel
|
||||
{
|
||||
public DayHeaderRenderModel(string dayHeader, double hourHeight)
|
||||
{
|
||||
DayHeader = dayHeader;
|
||||
HourHeight = hourHeight;
|
||||
}
|
||||
|
||||
public string DayHeader { get; }
|
||||
public double HourHeight { get; }
|
||||
}
|
||||
}
|
||||
50
Wino.Core.Domain/Models/Calendar/DayRangeRenderModel.cs
Normal file
50
Wino.Core.Domain/Models/Calendar/DayRangeRenderModel.cs
Normal file
@@ -0,0 +1,50 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Itenso.TimePeriod;
|
||||
using Wino.Core.Domain.Enums;
|
||||
|
||||
namespace Wino.Core.Domain.Models.Calendar
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a range of days in the calendar.
|
||||
/// Usually it's used for day or week, but supports custom ranges.
|
||||
/// </summary>
|
||||
public class DayRangeRenderModel
|
||||
{
|
||||
ITimePeriod Period { get; }
|
||||
public List<CalendarDayModel> CalendarDays { get; } = new List<CalendarDayModel>();
|
||||
public List<DayHeaderRenderModel> DayHeaders { get; } = new List<DayHeaderRenderModel>();
|
||||
public CalendarRenderOptions CalendarRenderOptions { get; }
|
||||
|
||||
public DayRangeRenderModel(CalendarRenderOptions calendarRenderOptions)
|
||||
{
|
||||
CalendarRenderOptions = calendarRenderOptions;
|
||||
|
||||
for (var i = 0; i < CalendarRenderOptions.TotalDayCount; i++)
|
||||
{
|
||||
var representingDate = calendarRenderOptions.DateRange.StartDate.AddDays(i);
|
||||
var calendarDayModel = new CalendarDayModel(representingDate, calendarRenderOptions);
|
||||
|
||||
CalendarDays.Add(calendarDayModel);
|
||||
}
|
||||
|
||||
Period = new TimeRange(CalendarDays.First().RepresentingDate, CalendarDays.Last().RepresentingDate.AddDays(1));
|
||||
|
||||
// Create day headers based on culture info.
|
||||
|
||||
for (var i = 0; i < 24; i++)
|
||||
{
|
||||
var representingDate = calendarRenderOptions.DateRange.StartDate.Date.AddHours(i);
|
||||
|
||||
string dayHeader = calendarRenderOptions.CalendarSettings.DayHeaderDisplayType switch
|
||||
{
|
||||
DayHeaderDisplayType.TwelveHour => representingDate.ToString("h tt", calendarRenderOptions.CalendarSettings.CultureInfo),
|
||||
DayHeaderDisplayType.TwentyFourHour => representingDate.ToString("HH", calendarRenderOptions.CalendarSettings.CultureInfo),
|
||||
_ => "N/A"
|
||||
};
|
||||
|
||||
DayHeaders.Add(new DayHeaderRenderModel(dayHeader, calendarRenderOptions.CalendarSettings.HourHeight));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
using System.Collections.Generic;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Entities.Mail;
|
||||
|
||||
namespace Wino.Core.Domain.Models.Comparers
|
||||
{
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
using System.IO;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Entities.Shared;
|
||||
|
||||
namespace Wino.Core.Domain.Models.Connectivity
|
||||
{
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
using System.Collections.Generic;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Entities.Shared;
|
||||
using Wino.Core.Domain.Enums;
|
||||
|
||||
namespace Wino.Core.Domain.Models.Folders
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Entities.Mail;
|
||||
using Wino.Core.Domain.Enums;
|
||||
|
||||
namespace Wino.Core.Domain.Models.Folders
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Wino.Core.Domain.Entities.Mail;
|
||||
|
||||
namespace Wino.Core.Domain.Entities
|
||||
namespace Wino.Core.Domain.Models.Folders
|
||||
{
|
||||
public record SystemFolderConfiguration(MailItemFolder SentFolder,
|
||||
MailItemFolder DraftFolder,
|
||||
@@ -1,5 +1,5 @@
|
||||
using MimeKit;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Entities.Mail;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Models.Launch;
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
using System;
|
||||
using System.Text.Json.Serialization;
|
||||
using MimeKit;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Entities.Mail;
|
||||
using Wino.Core.Domain.Entities.Shared;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Extensions;
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Entities.Mail;
|
||||
using Wino.Core.Domain.Entities.Shared;
|
||||
|
||||
namespace Wino.Core.Domain.Models.MailItem
|
||||
{
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
using MimeKit;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Entities.Mail;
|
||||
|
||||
namespace Wino.Core.Domain.Models.MailItem
|
||||
{
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Entities.Mail;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Models.Folders;
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System.Text.Json.Serialization;
|
||||
using MimeKit;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Entities.Mail;
|
||||
using Wino.Core.Domain.Entities.Shared;
|
||||
using Wino.Core.Domain.Extensions;
|
||||
|
||||
namespace Wino.Core.Domain.Models.MailItem
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Entities.Mail;
|
||||
using Wino.Core.Domain.Entities.Shared;
|
||||
|
||||
namespace Wino.Core.Domain.Models.MailItem
|
||||
{
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
public enum NavigationTransitionType
|
||||
{
|
||||
None, // Supress
|
||||
DrillIn
|
||||
DrillIn,
|
||||
Entrance,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
using System.Collections.Generic;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Entities.Mail;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Interfaces;
|
||||
|
||||
|
||||
6
Wino.Core.Domain/Models/Settings/SettingOption.cs
Normal file
6
Wino.Core.Domain/Models/Settings/SettingOption.cs
Normal file
@@ -0,0 +1,6 @@
|
||||
using Wino.Core.Domain.Enums;
|
||||
|
||||
namespace Wino.Core.Domain.Models.Settings
|
||||
{
|
||||
public record SettingOption(string Title, string Description, WinoPage NavigationPage, string PathIcon);
|
||||
}
|
||||
@@ -25,7 +25,7 @@ namespace Wino.Core.Domain.Translations
|
||||
/// </summary>
|
||||
/// <param name="language">Language</param>
|
||||
/// <returns>Relative folder for the language</returns>
|
||||
private string GetLanguageFileNameRelativePath(AppLanguage language)
|
||||
public static string GetLanguageFileNameRelativePath(AppLanguage language)
|
||||
{
|
||||
return language switch
|
||||
{
|
||||
|
||||
@@ -421,6 +421,8 @@
|
||||
"SettingsAvailableThemes_Title": "Available Themes",
|
||||
"SettingsAutoSelectNextItem_Title": "Auto select next item",
|
||||
"SettingsAutoSelectNextItem_Description": "Select the next item after you delete or move a mail.",
|
||||
"SettingsCalendarSettings_Title": "Calendar Settings",
|
||||
"SettingsCalendarSettings_Description": "Change first day of week, hour cell height and more...",
|
||||
"SettingsCustomTheme_Description": "Create your own custom theme with custom wallpaper and accent color.",
|
||||
"SettingsCustomTheme_Title": "Custom Theme",
|
||||
"SettingsConfigureSpecialFolders_Title": "Configure System Folders",
|
||||
|
||||
@@ -62,10 +62,11 @@
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="MimeKit" Version="4.7.1" />
|
||||
<PackageReference Include="MailKit" Version="4.7.1.1" />
|
||||
<PackageReference Include="MimeKit" Version="4.8.0" />
|
||||
<PackageReference Include="MailKit" Version="4.8.0" />
|
||||
<PackageReference Include="sqlite-net-pcl" Version="1.9.172" />
|
||||
<PackageReference Include="System.Text.Json" Version="8.0.4" />
|
||||
<PackageReference Include="System.Text.Json" Version="8.0.5" />
|
||||
<PackageReference Include="TimePeriodLibrary.NET" Version="2.1.5" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Service Include="{508349b6-6b84-4df5-91f0-309beebad82d}" />
|
||||
|
||||
Reference in New Issue
Block a user