public Task RefreshDMList()
{
return Task.Run(() =>
{
dmlist = new ConcurrentDictionary<TwitterUser, List<TwitterDirectMessage>>();
users = new HashSet<TwitterUser>();
var iedm = svc.ListDirectMessagesReceived(new ListDirectMessagesReceivedOptions { IncludeEntities = true, Count = 400 });
foreach (var i in iedm)
{
if (!users.Contains(i.Sender))
{
lock (sync)
{
users.Add(i.Sender);
dmlist[i.Sender] = new List<TwitterDirectMessage>();
dmlist[i.Sender].Add(i);
}
}
else
{
lock (sync) dmlist[i.Sender].Add(i);
}
}
iedm = svc.ListDirectMessagesSent(new ListDirectMessagesSentOptions { Count = 400, IncludeEntities = true });
foreach (var i in iedm)
{
if (!users.Contains(i.Recipient))
{
lock (sync)
{
users.Add(i.Recipient);
dmlist[i.Recipient] = new List<TwitterDirectMessage>();
dmlist[i.Recipient].Add(i);
}
}
else
{
lock (sync) dmlist[i.Recipient].Add(i);
}
}
foreach (var i in dmlist)
{
i.Value.Sort((x, y) => x.CreatedDate.CompareTo(y.CreatedDate));
}
});
}