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

ToggleFavorite() public method

public ToggleFavorite ( ) : void
return void
        public void ToggleFavorite()
        {
            if (!CanFavorite)
            {
                NotifyQuickActionFailed(
                    MainAreaTimelineResources.MsgProhibitFavorite,
                    IsDirectMessage
                        ? MainAreaTimelineResources.MsgProhibitFavoriteDirectMessage
                        : MainAreaTimelineResources.MsgProhibitFavoriteMyself);
                return;
            }
            var model = RetweetedOriginalModel ?? Model;
            var favoriteds =
                Setting.Accounts.Collection
                       .Where(a => model.IsFavorited(a.Id))
                       .ToArray();
            MainWindowModel.ExecuteAccountSelectAction(
                AccountSelectionAction.Favorite,
                favoriteds,
                infos =>
                {
                    var accounts =
                        infos as TwitterAccount[] ?? infos.ToArray();
                    var adds = accounts.Except(favoriteds);
                    var rmvs = favoriteds.Except(accounts);
                    Favorite(adds, true);
                    Favorite(rmvs, false);
                });
        }