Fixing UI thread issues with bulk operations and request queue refactoring.

This commit is contained in:
Burak Kaan Köse
2026-04-20 02:18:23 +02:00
parent 3bd0b69429
commit 54148716bb
38 changed files with 1644 additions and 206 deletions
+7
View File
@@ -0,0 +1,7 @@
using System.Collections.Generic;
using Wino.Core.Domain.Entities.Mail;
using Wino.Core.Domain.Enums;
namespace Wino.Messaging.UI;
public record BulkMailAddedMessage(IReadOnlyList<MailCopy> AddedMails, EntityUpdateSource Source = EntityUpdateSource.Server) : UIMessageBase<BulkMailAddedMessage>;
@@ -0,0 +1,6 @@
using System;
using System.Collections.Generic;
namespace Wino.Messaging.UI;
public record BulkMailReadStatusChanged(IReadOnlyList<Guid> UniqueIds);
@@ -0,0 +1,7 @@
using System.Collections.Generic;
using Wino.Core.Domain.Entities.Mail;
using Wino.Core.Domain.Enums;
namespace Wino.Messaging.UI;
public record BulkMailRemovedMessage(IReadOnlyList<MailCopy> RemovedMails, EntityUpdateSource Source = EntityUpdateSource.Server) : UIMessageBase<BulkMailRemovedMessage>;
@@ -0,0 +1,8 @@
using System.Collections.Generic;
using Wino.Core.Domain.Enums;
namespace Wino.Messaging.UI;
public record BulkMailStateUpdatedMessage(
IReadOnlyList<MailStateChange> UpdatedStates,
EntityUpdateSource Source = EntityUpdateSource.Server) : UIMessageBase<BulkMailStateUpdatedMessage>;
+5 -1
View File
@@ -1,6 +1,10 @@
using System.Collections.Generic;
using Wino.Core.Domain.Entities.Mail;
using Wino.Core.Domain.Enums;
namespace Wino.Messaging.UI;
public record BulkMailUpdatedMessage(IReadOnlyList<MailCopy> UpdatedMails) : UIMessageBase<BulkMailUpdatedMessage>;
public record BulkMailUpdatedMessage(
IReadOnlyList<MailCopy> UpdatedMails,
EntityUpdateSource Source = EntityUpdateSource.Server,
MailCopyChangeFlags ChangedProperties = MailCopyChangeFlags.None) : UIMessageBase<BulkMailUpdatedMessage>;
+11
View File
@@ -0,0 +1,11 @@
using System;
using Wino.Core.Domain.Enums;
namespace Wino.Messaging.UI;
public sealed record MailStateChange(Guid UniqueId, bool? IsRead = null, bool? IsFlagged = null)
{
public MailCopyChangeFlags ChangedProperties =>
(IsRead.HasValue ? MailCopyChangeFlags.IsRead : MailCopyChangeFlags.None) |
(IsFlagged.HasValue ? MailCopyChangeFlags.IsFlagged : MailCopyChangeFlags.None);
}
@@ -0,0 +1,7 @@
using Wino.Core.Domain.Enums;
namespace Wino.Messaging.UI;
public record MailStateUpdatedMessage(
MailStateChange UpdatedState,
EntityUpdateSource Source = EntityUpdateSource.Server) : UIMessageBase<MailStateUpdatedMessage>;