From 8be52c9dddf18ffa3c95a78e4b06f3aaf14588ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Burak=20Kaan=20K=C3=B6se?= Date: Sat, 24 Aug 2024 15:38:52 +0200 Subject: [PATCH] Capitilize first letter of folder names if all capital for IMAP. --- Wino.Core/Extensions/MailkitExtensions.cs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/Wino.Core/Extensions/MailkitExtensions.cs b/Wino.Core/Extensions/MailkitExtensions.cs index efe980d8..badbc02b 100644 --- a/Wino.Core/Extensions/MailkitExtensions.cs +++ b/Wino.Core/Extensions/MailkitExtensions.cs @@ -1,4 +1,5 @@ using System; +using System.Linq; using MailKit; using Wino.Core.Domain.Entities; @@ -8,14 +9,28 @@ namespace Wino.Core.Extensions { public static MailItemFolder GetLocalFolder(this IMailFolder mailkitMailFolder) { + bool isAllCapital = mailkitMailFolder.Name?.All(a => char.IsUpper(a)) ?? false; + return new MailItemFolder() { Id = Guid.NewGuid(), - FolderName = mailkitMailFolder.Name, + FolderName = isAllCapital ? mailkitMailFolder.Name.OnlyCapitilizeFirstLetter() : mailkitMailFolder.Name, RemoteFolderId = mailkitMailFolder.FullName, ParentRemoteFolderId = mailkitMailFolder.ParentFolder?.FullName, SpecialFolderType = Domain.Enums.SpecialFolderType.Other }; } + + public static string OnlyCapitilizeFirstLetter(this string s) + { + if (string.IsNullOrEmpty(s)) + return string.Empty; + + s = s.ToLower(); + + char[] a = s.ToCharArray(); + a[0] = char.ToUpper(a[0]); + return new string(a); + } } }