public void ToggleRetweet()
{
if (!CanRetweet)
{
NotifyQuickActionFailed(
MainAreaTimelineResources.MsgProhibitRetweet,
IsDirectMessage
? MainAreaTimelineResources.MsgProhibitRetweetDirectMessage
: MainAreaTimelineResources.MsgProhibitRetweetMyself);
return;
}
var model = RetweetedOriginalModel ?? Model;
var retweeteds = Setting.Accounts.Collection
.Where(a => model.IsRetweeted(a.Id))
.ToArray();
MainWindowModel.ExecuteAccountSelectAction(
AccountSelectionAction.Retweet,
retweeteds,
infos =>
{
var authenticateInfos =
infos as TwitterAccount[] ?? infos.ToArray();
var adds =
authenticateInfos.Except(retweeteds);
var rmvs =
retweeteds.Except(authenticateInfos);
Retweet(adds, true);
Retweet(rmvs, false);
});
}