Threading improvements.
This commit is contained in:
@@ -25,6 +25,7 @@ using Wino.Core.Domain.Entities.Mail;
|
||||
using Wino.Core.Domain.Entities.Shared;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Exceptions;
|
||||
using Wino.Core.Domain.Extensions;
|
||||
using Wino.Core.Domain.Interfaces;
|
||||
using Wino.Core.Domain.Models.Accounts;
|
||||
using Wino.Core.Domain.Models.Folders;
|
||||
@@ -1691,9 +1692,9 @@ public class GmailSynchronizer : WinoSynchronizer<IClientServiceRequest, Message
|
||||
IsRead = !isUnread,
|
||||
IsFlagged = isFlagged,
|
||||
IsFocused = isFocused,
|
||||
InReplyTo = gmailMessage.Payload?.Headers?.FirstOrDefault(h => h.Name.Equals("In-Reply-To", StringComparison.OrdinalIgnoreCase))?.Value,
|
||||
MessageId = gmailMessage.Payload?.Headers?.FirstOrDefault(h => h.Name.Equals("Message-Id", StringComparison.OrdinalIgnoreCase))?.Value,
|
||||
References = gmailMessage.Payload?.Headers?.FirstOrDefault(h => h.Name.Equals("References", StringComparison.OrdinalIgnoreCase))?.Value,
|
||||
InReplyTo = MailHeaderExtensions.StripAngleBrackets(gmailMessage.Payload?.Headers?.FirstOrDefault(h => h.Name.Equals("In-Reply-To", StringComparison.OrdinalIgnoreCase))?.Value),
|
||||
MessageId = MailHeaderExtensions.StripAngleBrackets(gmailMessage.Payload?.Headers?.FirstOrDefault(h => h.Name.Equals("Message-Id", StringComparison.OrdinalIgnoreCase))?.Value),
|
||||
References = MailHeaderExtensions.NormalizeReferences(gmailMessage.Payload?.Headers?.FirstOrDefault(h => h.Name.Equals("References", StringComparison.OrdinalIgnoreCase))?.Value),
|
||||
FileId = Guid.NewGuid(),
|
||||
ItemType = itemType
|
||||
};
|
||||
|
||||
@@ -196,6 +196,9 @@ public class ImapSynchronizer : WinoSynchronizer<ImapRequest, ImapMessageCreatio
|
||||
if (!smtpClient.IsAuthenticated)
|
||||
await smtpClient.AuthenticateAsync(Account.ServerInformation.OutgoingServerUsername, Account.ServerInformation.OutgoingServerPassword);
|
||||
|
||||
// Remove local draft header before sending to prevent leaking to recipients.
|
||||
singleRequest.Mime.Headers.Remove(Domain.Constants.WinoLocalDraftHeader);
|
||||
|
||||
// TODO: Transfer progress implementation as popup in the UI.
|
||||
await smtpClient.SendAsync(singleRequest.Mime, default);
|
||||
await smtpClient.DisconnectAsync(true);
|
||||
@@ -218,10 +221,6 @@ public class ImapSynchronizer : WinoSynchronizer<ImapRequest, ImapMessageCreatio
|
||||
var sentFolder = await client.GetFolderAsync(singleRequest.SentFolder.RemoteFolderId);
|
||||
|
||||
await sentFolder.OpenAsync(FolderAccess.ReadWrite);
|
||||
|
||||
// Delete local Wino draft header. Otherwise mapping will be applied on re-sync.
|
||||
singleRequest.Mime.Headers.Remove(Domain.Constants.WinoLocalDraftHeader);
|
||||
|
||||
await sentFolder.AppendAsync(singleRequest.Mime, MessageFlags.Seen);
|
||||
await sentFolder.CloseAsync();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user