public async void Process(TwitchClient client, string username, string commandText, bool isMod,
                                  JoinedChannel joinedChannel)
        {
            if (string.IsNullOrWhiteSpace(commandText))
            {
                client.SendMessage(joinedChannel,
                                   $"Hey @{username}, looks like you haven't included a request there!");
                return;
            }

            var addSongResult = await _playlistApiClient.AddSong(new AddSongRequest
            {
                Username     = username,
                CommandText  = commandText,
                IsVipRequest = true
            });

            if (addSongResult != null)
            {
                switch (addSongResult.Result)
                {
                case AddRequestResult.Success:
                    var playlistPosition = addSongResult.PlaylistPosition;

                    client.SendMessage(joinedChannel,
                                       $"Hey @{username}, I have queued {commandText} for you, you're #{playlistPosition} in the queue!");

                    return;

                case AddRequestResult.PlaylistVeryClosed:
                    client.SendMessage(joinedChannel,
                                       $"Hey @{username}, the playlist is currently closed. No Requests allowed.");
                    return;

                case AddRequestResult.NoRequestEntered:
                    client.SendMessage(joinedChannel,
                                       $"Hey @{username}, looks like you haven't included a request there!");
                    return;

                case AddRequestResult.NotEnoughVips:
                    client.SendMessage(joinedChannel,
                                       $"Hey @{username}, sorry but you don't have a VIP token.");
                    return;

                case AddRequestResult.UnSuccessful:
                    client.SendMessage(joinedChannel,
                                       $"Hey @{username}, I can't queue your VIP request right now, please try again in a sec");
                    return;
                }
            }
            else
            {
                client.SendMessage(joinedChannel,
                                   $"Hey @{username}, it looks like you don't have any remaining VIP requests. Please use the standard !request command.");
            }
        }
        public async void Process(TwitchClient client, string username, string commandText, bool isMod, JoinedChannel joinedChannel)
        {
            if (string.IsNullOrWhiteSpace(commandText))
            {
                client.SendMessage(joinedChannel, $"Hi @{username}, looks like you haven't included a request there!");
                return;
            }

            var result = await _playlistApiClient.AddSong(new AddSongRequest
            {
                Username     = username,
                CommandText  = commandText,
                IsVipRequest = false
            });

            string message;

            if (result != null)
            {
                switch (result.Result)
                {
                case AddRequestResult.PlaylistVeryClosed:
                    message = $"Hey @{username}, the playlist is currently very closed. No Requests allowed.";
                    break;

                case AddRequestResult.PlaylistClosed:
                    message =
                        $"Hey @{username}, the playlist is currently closed. If you want to request a song still, try !vip";
                    break;

                case AddRequestResult.MaximumRegularRequests:
                    message = $"Hey @{username}, you've requested the max regular requests!";
                    break;

                default:
                    message = $"Hey @{username}, I have queued {commandText} for you!";
                    break;
                }
            }
            else
            {
                message = $"Hey @{username}, something's gone wrong. Please try again soon!";
            }

            client.SendMessage(joinedChannel, message);
        }