StarryEyes.ViewModels.Timelines.Statuses.StatusViewModel.ToggleRetweet C# (CSharp) Method

ToggleRetweet() public method

public ToggleRetweet ( ) : void
return void
        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);
                });
        }