public async void AddRetweetedUser(TwitterUser user)
{
if (Status.RetweetedOriginal != null)
{
var status = await Get(Status.RetweetedOriginal).ConfigureAwait(false);
status.AddRetweetedUser(user);
}
else
{
var added = false;
lock (_retweetedsLock)
{
if (!_retweetedUsersDic.ContainsKey(user.Id))
{
_retweetedUsersDic.Add(user.Id, user);
Status.RetweetedUsers = Status.RetweetedUsers.Guard()
.Append(user.Id)
.Distinct()
.ToArray();
added = true;
}
}
if (added)
{
_retweetedUsers.Add(user);
#pragma warning disable 4014
StatusProxy.AddRetweeter(Status.Id, user.Id);
StatusBroadcaster.Republish(this);
#pragma warning restore 4014
}
}
}