protected void DoRefreshConversations(bool selectActive = false)
{
_conversations.RemoveAll((c) => {
if (c.conversation.State == ConversationState.Terminated)
{
return(true);
}
else
{
return(false);
}
});
foreach (var lyncConv in client.ConversationManager.Conversations)
{
var conv = FindConversation(lyncConv);
if (null == conv)
{
_conversations.Add(TrackConversation(lyncConv));
continue;
}
else
{
UpdateConversation(conv);
}
}
_conversations.Sort(Comparer <LyncConversation> .Create((l, r) => {
int lGroup = l.participants.Count > 2 ? 1 : 0;
int rGroup = r.participants.Count > 2 ? 1 : 0;
if (lGroup > rGroup)
{
return(-1);
}
else if (lGroup < rGroup)
{
return(1);
}
else
{
return(string.Compare(l.ToString(), r.ToString()));
}
}));
_main.lbConversations.Items.Refresh();
if (selectActive)
{
string activeConversationTitle = Util.GetActiveLyncConversationTitle();
var activeConversation = FindConversationFromTitle(activeConversationTitle);
if (activeConversation != null)
{
_main.lbConversations.SelectedItem = activeConversation;
}
}
//var selfContact = client.Self.Contact;
//foreach (var infoType in Enum.GetValues(typeof(ContactInformationType)).Cast<ContactInformationType>())
//{
// try {
// var infoTypeName = Enum.GetName(typeof(ContactInformationType), infoType);
// var infoValue = selfContact.GetContactInformation(infoType).ToString();
// if (!string.IsNullOrEmpty(infoValue))
// {
// System.Diagnostics.Debug.Print($"{infoTypeName}: {infoValue}");
// }
// } catch (Exception)
// {
// // ignore
// }
//}
}