コード例 #1
0
        public async Task <Stream> DownloadMediaResourceAsync(IMediaResourceDownloadRequest request, CancellationToken cancelToken = default(CancellationToken))
        {
            IMediaResourceDownloadRequest requestCopy          = request.DeepCopyReadMediaRequest();
            IMediaResourceDownloadRequest autocompletedRequest = this.requestMerger.FillReadMediaItemGaps(requestCopy);
            DownloadStrategy downloadStrategyFromUser          = this.mediaSettings.MediaDownloadStrategy;

            if (DownloadStrategy.Plain == downloadStrategyFromUser)
            {
                return(await this.DownloadPlainMediaResourceAsync(autocompletedRequest, cancelToken));
            }
            else if (DownloadStrategy.Hashed == downloadStrategyFromUser)
            {
                return(await this.DownloadHashedMediaResourceAsync(autocompletedRequest, cancelToken));
            }
            else
            {
                throw new ArgumentException("Unexpected media download strategy specified");
            }
        }
コード例 #2
0
        public async Task <Stream> DownloadMediaResourceAsync(IMediaResourceDownloadRequest request, CancellationToken cancelToken = default(CancellationToken))
        {
            IMediaResourceDownloadRequest requestCopy = request.DeepCopyReadMediaRequest();

            await this.GetPublicKeyAsync(cancelToken);

            IMediaResourceDownloadRequest autocompletedRequest = this.requestMerger.FillReadMediaItemGaps(requestCopy);

            MediaItemUrlBuilder urlBuilder = new MediaItemUrlBuilder(
                this.restGrammar,
                this.sscGrammar,
                this.sessionConfig,
                this.mediaSettings,
                autocompletedRequest.ItemSource);

            var taskFlow = new GetResourceTask(urlBuilder, this.httpClient);

            return(await RestApiCallFlow.LoadResourceFromNetworkFlow(autocompletedRequest, taskFlow, cancelToken));
        }
コード例 #3
0
    public async Task<Stream> DownloadMediaResourceAsync(IMediaResourceDownloadRequest request, CancellationToken cancelToken = default(CancellationToken))
    {
      IMediaResourceDownloadRequest requestCopy = request.DeepCopyReadMediaRequest();
      IMediaResourceDownloadRequest autocompletedRequest = this.requestMerger.FillReadMediaItemGaps(requestCopy);
      DownloadStrategy downloadStrategyFromUser = this.mediaSettings.MediaDownloadStrategy;

      if (DownloadStrategy.Plain == downloadStrategyFromUser)
      {
        return await this.DownloadPlainMediaResourceAsync(autocompletedRequest, cancelToken);
      }
      else if (DownloadStrategy.Hashed == downloadStrategyFromUser)
      {
        return await this.DownloadHashedMediaResourceAsync(autocompletedRequest, cancelToken);
      }
      else
      {
        throw new ArgumentException("Unexpected media download strategy specified");
      }
    }