private async void CommandHandler(object sender, ExecutedRoutedEventArgs args) { try { if (inCommand) { return; } inCommand = true; var twitterStatus = StatusFromParameter(args.Parameter); if (twitterStatus is not null) { var screenName = twitterStatus.User.ScreenName; if (screenName is null) { return; } if (twitterStatus.User.IsFollowing) { await TwitterService.Unfollow(screenName).ConfigureAwait(true); var user = twitterStatus.User; if (user is not null) { user.Followers = Math.Max(0, user.Followers - 1); user.IsFollowing = false; } } else { await TwitterService.Follow(screenName).ConfigureAwait(true); var user = twitterStatus.User; if (user is not null) { user.Followers++; user.IsFollowing = true; } } } } catch (Exception ex) { await MessageBoxService.ShowMessageBoxAsync(ex.Message).ConfigureAwait(false); } finally { inCommand = false; } }