public static async Task <ReadOnlyCollection <PlaylistItemResource.PlaylistItemResource> > GetAllPlaylistItemsAsync(
            this IYouTubeClient client,
            PlaylistItemListRequest request,
            CancellationToken cancellationToken
            )
        {
            // Validate parameters.
            if (client == null)
            {
                throw new ArgumentNullException(nameof(client));
            }
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            // The response.
            PlaylistItemListResponse?response = null;

            // The items.
            var items = new List <PlaylistItemResource.PlaylistItemResource>();

            // Cycle once.
            do
            {
                // Create a new request.
                var newRequest = new PlaylistItemListRequest(
                    request.PlaylistId,
                    maxResults: MaxResults.MaxValue,
                    pageToken: response?.NextPageToken
                    ).AddParts(request.Parts);

                // Make the request.
                response = await client.GetPlaylistItemsAsync(newRequest, cancellationToken).ConfigureAwait(false);

                // Append.
                items.AddRange(response.Items);
            } while (!string.IsNullOrWhiteSpace(response.NextPageToken));

            // Wrap the result and return.
            return(new ReadOnlyCollection <PlaylistItemResource.PlaylistItemResource>(items));
        }
Beispiel #2
0
 public MainYouTubeViewModel(IYouTubeClient youTubeService, ISystemControlClient systemService)
 {
     if (youTubeService == null)
     {
         throw new ArgumentNullException("youTubeService");
     }
     if (systemService == null)
     {
         throw new ArgumentNullException("systemService");
     }
     _youTubeService = youTubeService;
     _systemService  = systemService;
     VolumeValue     = _systemService.GetVolume();
     _youTubeService.OpenYoutube();
     Task.Run(async() =>
     {
         IsBusy = true;
         await RefreshData(4000);
     });
 }
Beispiel #3
0
 public YoutubeService(IYouTubeClient youtubeClient)
 {
     _youtubeClient = youtubeClient;
 }
Beispiel #4
0
 public YouTubeService()
 {
     _client = new YouTubeClient();
 }