♻️ Optimize chat summary

This commit is contained in:
2025-08-10 20:22:43 +08:00
parent 65398c5fec
commit ea8158cb50

View File

@@ -381,8 +381,23 @@ public partial class ChatService(
messageSenders = await crs.LoadMemberAccounts(messageSenders); messageSenders = await crs.LoadMemberAccounts(messageSenders);
messageSenders = messageSenders.Where(x => x.Account is not null).ToList(); messageSenders = messageSenders.Where(x => x.Account is not null).ToList();
// Get keys of messages to remove (where sender is not found)
var messagesToRemove = messages
.Where(m => messageSenders.All(s => s.Id != m.Value.SenderId))
.Select(m => m.Key)
.ToList();
// Remove messages with no sender
foreach (var key in messagesToRemove)
{
messages.Remove(key);
}
// Update remaining messages with their senders
foreach (var message in messages) foreach (var message in messages)
{
message.Value!.Sender = messageSenders.First(x => x.Id == message.Value.SenderId); message.Value!.Sender = messageSenders.First(x => x.Id == message.Value.SenderId);
}
return messages; return messages;
} }