public async Task <AddSongResult> AddSongRequest(string username, string requestText, SongRequestType songRequestType)
        {
            if (string.IsNullOrWhiteSpace(requestText))
            {
                return new AddSongResult
                       {
                           AddRequestResult = AddRequestResult.NoRequestEntered
                       }
            }
            ;

            if (string.IsNullOrWhiteSpace(username) || songRequestType == SongRequestType.Any)
            {
                return new AddSongResult
                       {
                           AddRequestResult = AddRequestResult.UnSuccessful
                       }
            }
            ;

            var playlistState = _getPlaylistStateQuery.GetPlaylistState();

            switch (playlistState)
            {
            case PlaylistState.VeryClosed:
                if (songRequestType != SongRequestType.SuperVip)
                {
                    return(new AddSongResult
                    {
                        AddRequestResult = AddRequestResult.PlaylistVeryClosed
                    });
                }

                break;

            case PlaylistState.Closed:
                if (songRequestType == SongRequestType.Regular)
                {
                    return(new AddSongResult
                    {
                        AddRequestResult = AddRequestResult.PlaylistClosed
                    });
                }

                break;
            }
            return(await _processSongRequestCommand.ProcessAddingSongRequest(username, requestText, songRequestType).ConfigureAwait(false));
        }
    }
}
        public PlaylistState GetPlaylistState()
        {
            var playlistState = _getPlaylistStateQuery.GetPlaylistState();

            return(playlistState);
        }