Rework UI Updates #7
@ -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)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user