Capitilize first letter of folder names if all capital for IMAP.

This commit is contained in:
Burak Kaan Köse
2024-08-24 15:38:52 +02:00
parent 3bea6619fa
commit 8be52c9ddd

View File

@@ -1,4 +1,5 @@
using System; using System;
using System.Linq;
using MailKit; using MailKit;
using Wino.Core.Domain.Entities; using Wino.Core.Domain.Entities;
@@ -8,14 +9,28 @@ namespace Wino.Core.Extensions
{ {
public static MailItemFolder GetLocalFolder(this IMailFolder mailkitMailFolder) public static MailItemFolder GetLocalFolder(this IMailFolder mailkitMailFolder)
{ {
bool isAllCapital = mailkitMailFolder.Name?.All(a => char.IsUpper(a)) ?? false;
return new MailItemFolder() return new MailItemFolder()
{ {
Id = Guid.NewGuid(), Id = Guid.NewGuid(),
FolderName = mailkitMailFolder.Name, FolderName = isAllCapital ? mailkitMailFolder.Name.OnlyCapitilizeFirstLetter() : mailkitMailFolder.Name,
RemoteFolderId = mailkitMailFolder.FullName, RemoteFolderId = mailkitMailFolder.FullName,
ParentRemoteFolderId = mailkitMailFolder.ParentFolder?.FullName, ParentRemoteFolderId = mailkitMailFolder.ParentFolder?.FullName,
SpecialFolderType = Domain.Enums.SpecialFolderType.Other 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);
}
} }
} }