private async Task <string> DownloadFileAsyncImpl(ReportingDownloadParameters parameters, CancellationToken cancellationToken) { using (var operation = await SubmitDownloadAsyncImpl(parameters.ReportRequest).ConfigureAwait(false)) { await operation.TrackAsync(cancellationToken).ConfigureAwait(false); return(await DownloadReportingFile(parameters.ResultFileDirectory, parameters.ResultFileName, parameters.OverwriteResultFile, operation).ConfigureAwait(false)); } }
/// <summary> /// Downloads the reporting file to a Report Object in async mode. /// </summary> /// <param name="parameters">Determines various download parameters, for example what entities to download and where the file should be downloaded. /// Please see <see cref="ReportingDownloadParameters"/> for more information about available parameters.</param> /// <param name="cancellationToken">Cancellation token that can be used to cancel the tracking of the reporting operation on the client. Doesn't cancel the actual reporting operation on the server.</param> /// <returns>A task that represents the asynchronous operation. The task result will be return a Object of Report.</returns> /// <exception cref="FaultException{TDetail}">Thrown if a fault is returned from the Bing Ads service.</exception> /// <exception cref="OAuthTokenRequestException">Thrown if tokens can't be refreshed due to an error received from the Microsoft Account authorization server.</exception> /// <exception cref="ReportingOperationCouldNotBeCompletedException">Thrown if the reporting operation has failed </exception> public Task <Report> DownloadReportAsync(ReportingDownloadParameters parameters, CancellationToken cancellationToken) { return(DownloadReportAsyncImpl(parameters, cancellationToken)); }
private async Task <Report> DownloadReportAsyncImpl(ReportingDownloadParameters parameters, CancellationToken cancellationToken) { var resultFile = await this.DownloadFileAsyncImpl(parameters, cancellationToken).ConfigureAwait(false); return(resultFile != null ? new ReportFileReader(resultFile, parameters.ReportRequest.Format.GetValueOrDefault()).GetReport() : null); }
/// <summary> /// Downloads the specified reporting entities to a local file. /// </summary> /// <param name="parameters">Determines various download parameters, for example what entities to download and where the file should be downloaded. /// Please see <see cref="ReportingDownloadParameters"/> for more information about available parameters.</param> /// <returns>A task that represents the asynchronous operation. The task result will be the local reporting file path.</returns> /// <exception cref="FaultException{TDetail}">Thrown if a fault is returned from the Bing Ads service.</exception> /// <exception cref="OAuthTokenRequestException">Thrown if tokens can't be refreshed due to an error received from the Microsoft Account authorization server.</exception> /// <exception cref="ReportingOperationCouldNotBeCompletedException">Thrown if the reporting operation has failed </exception> public Task <string> DownloadFileAsync(ReportingDownloadParameters parameters) { return(DownloadFileAsync(parameters, CancellationToken.None)); }