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"); } }
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)); }
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"); } }