public AddSongRequestCommand(
     IGetPlaylistStateQuery getPlaylistStateQuery,
     IProcessSongRequestCommand processSongRequestCommand
     )
 {
     _getPlaylistStateQuery     = getPlaylistStateQuery;
     _processSongRequestCommand = processSongRequestCommand;
 }
        public PlaylistService(
            IGetSongRequestByIdQuery getSongRequestByIdQuery,
            IGetPlaylistStateQuery getPlaylistStateQuery,
            IAddSongRequestCommand addSongRequestCommand,
            IPromoteRequestCommand promoteRequestCommand,
            IArchiveRequestCommand archiveRequestCommand,
            IRemoveAndRefundAllRequestsCommand removeAndRefundAllRequestsCommand,
            IGetCurrentRequestsQuery getCurrentRequestsQuery,
            IIsSuperVipInQueueQuery isSuperVipInQueueQuery,
            IGetUsersFormattedRequestsQuery getUsersFormattedRequestsQuery,
            IUpdatePlaylistStateCommand updatePlaylistStateCommand,
            IAddSongToDriveCommand addSongToDriveCommand,
            IGetMaxRegularRequestCountQuery getMaxRegularRequestCountQuery,
            IEditSuperVipCommand editSuperVipCommand,
            IRemoveSuperVipCommand removeSuperVipCommand,
            IGetUsersCurrentRequestCountsQuery getUsersCurrentRequestCountsQuery,
            IRemoveUsersRequestByPlaylistIndexCommand removeUsersRequestByPlaylistIndexCommand,
            IArchiveUsersSingleRequestCommand archiveUsersSingleRequestCommand,
            IGetSingleSongRequestIdRepository getSingleSongRequestIdRepository,
            IGetUsersRequestAtPlaylistIndexQuery getUsersRequestAtPlaylistIndexQuery,
            IEditRequestCommand editRequestCommand,
            IGetTopTenRequestsQuery getTopTenRequestsQuery,
            ISecretService secretService,
            IConfigService configService,
            ISignalRService signalRService,
            IRefundVipCommand refundVipCommand
            )
        {
            _getSongRequestByIdQuery           = getSongRequestByIdQuery;
            _getPlaylistStateQuery             = getPlaylistStateQuery;
            _addSongRequestCommand             = addSongRequestCommand;
            _promoteRequestCommand             = promoteRequestCommand;
            _archiveRequestCommand             = archiveRequestCommand;
            _removeAndRefundAllRequestsCommand = removeAndRefundAllRequestsCommand;
            _getCurrentRequestsQuery           = getCurrentRequestsQuery;
            _isSuperVipInQueueQuery            = isSuperVipInQueueQuery;
            _getUsersFormattedRequestsQuery    = getUsersFormattedRequestsQuery;
            _updatePlaylistStateCommand        = updatePlaylistStateCommand;
            _addSongToDriveCommand             = addSongToDriveCommand;
            _getMaxRegularRequestCountQuery    = getMaxRegularRequestCountQuery;
            _editSuperVipCommand                      = editSuperVipCommand;
            _removeSuperVipCommand                    = removeSuperVipCommand;
            _getUsersCurrentRequestCountsQuery        = getUsersCurrentRequestCountsQuery;
            _removeUsersRequestByPlaylistIndexCommand = removeUsersRequestByPlaylistIndexCommand;
            _archiveUsersSingleRequestCommand         = archiveUsersSingleRequestCommand;
            _getSingleSongRequestIdRepository         = getSingleSongRequestIdRepository;
            _getUsersRequestAtPlaylistIndexQuery      = getUsersRequestAtPlaylistIndexQuery;
            _editRequestCommand     = editRequestCommand;
            _getTopTenRequestsQuery = getTopTenRequestsQuery;
            _secretService          = secretService;
            _configService          = configService;
            _signalRService         = signalRService;
            _refundVipCommand       = refundVipCommand;

            _concurrentVipSongsToPlay = configService.Get <int>("ConcurrentVipSongsToPlay");

            _rand = new Random();
        }