Fix A Bug Where Some Contacts Won't Be Populated Into The Contacts List

This commit is contained in:
Alan Moon 2025-11-27 12:39:21 -08:00
parent fb039c6b87
commit a970fd1b5c

View File

@ -816,15 +816,10 @@ namespace qtc_net_client_2
if (!contactsRes.Success || contactsRes.Data == null)
return;
var uniqueContacts = contactsRes.Data
.GroupBy(c => c.UserId)
.Select(g => g.First())
.ToList();
if (InvokeRequired)
Invoke(() => ApplyContacts(uniqueContacts));
Invoke(() => ApplyContacts(contactsRes.Data));
else
ApplyContacts(uniqueContacts);
ApplyContacts(contactsRes.Data);
}
finally
{
@ -840,15 +835,14 @@ namespace qtc_net_client_2
e.UserStatus == Contact.ContactStatus.AwaitingApprovalFromSelf);
Contacts.Clear();
Contacts.AddRange(newContacts.DistinctBy(c => c.UserId));
// Snapshot to avoid concurrent modification
var contactsSnapshot = Contacts.ToList();
Contacts.AddRange(newContacts.DistinctBy(c => c.Id));
flpContacts.SuspendLayout();
flpContacts.Controls.Clear();
foreach (var contact in contactsSnapshot)
var contactsSnap = Contacts.ToList();
foreach (var contact in contactsSnap)
{
var ctrl = await BuildContactControl(contact);
if (ctrl != null)