Folder management stuff.

This commit is contained in:
Burak Kaan Köse
2026-04-18 00:02:54 +02:00
parent 98eed39fe6
commit d287c22725
11 changed files with 52 additions and 37 deletions
+8 -2
View File
@@ -87,15 +87,21 @@ public class FolderService : BaseDatabaseService, IFolderService
Messenger.Send(new AccountFolderConfigurationUpdated(accountId));
}
private static int GetDefaultFolderOrder(MailItemFolder folder)
=> folder.SpecialFolderType == SpecialFolderType.Other
? int.MaxValue
: (int)folder.SpecialFolderType;
/// <summary>
/// Orders folders by user-set Order first (customized entries ahead of uncustomized ones),
/// then falls back to alphabetic folder name (culture-aware), then to SpecialFolderType
/// as a final canonical tiebreak.
/// then falls back to SpecialFolderType enum order for known special folders so defaults
/// like Inbox stay at the top, and finally to alphabetic folder name (culture-aware).
/// </summary>
private static IOrderedEnumerable<MailItemFolder> ApplyFolderSort(IEnumerable<MailItemFolder> folders)
=> folders
.OrderBy(a => a.Order == 0 ? 1 : 0)
.ThenBy(a => a.Order)
.ThenBy(GetDefaultFolderOrder)
.ThenBy(a => a.FolderName, StringComparer.CurrentCultureIgnoreCase)
.ThenBy(a => a.SpecialFolderType);