/// <inheritdoc /> public override BigQueryDataset GetOrCreateDataset(DatasetReference datasetReference, Dataset resource = null, GetDatasetOptions getOptions = null, CreateDatasetOptions createOptions = null) { GaxPreconditions.CheckNotNull(datasetReference, nameof(datasetReference)); GaxPreconditions.CheckArgument( resource?.DatasetReference == null || datasetReference.ReferencesSameAs(resource.DatasetReference), nameof(resource.DatasetReference), $"If {nameof(resource.DatasetReference)} is specified, it must be the same as {nameof(datasetReference)}"); try { return(GetDataset(datasetReference, getOptions)); } catch (GoogleApiException ex) when(ex.HttpStatusCode == HttpStatusCode.NotFound) { return(CreateDataset(datasetReference, resource, createOptions)); } }
/// <inheritdoc /> public override async Task <BigQueryDataset> GetOrCreateDatasetAsync(DatasetReference datasetReference, Dataset resource = null, GetDatasetOptions getOptions = null, CreateDatasetOptions createOptions = null, CancellationToken cancellationToken = default) { GaxPreconditions.CheckNotNull(datasetReference, nameof(datasetReference)); GaxPreconditions.CheckArgument( resource?.DatasetReference == null || datasetReference.ReferencesSameAs(resource.DatasetReference), nameof(resource.DatasetReference), $"If {nameof(resource.DatasetReference)} is specified, it must be the same as {nameof(datasetReference)}"); try { return(await GetDatasetAsync(datasetReference, getOptions, cancellationToken).ConfigureAwait(false)); } catch (GoogleApiException ex) when(ex.HttpStatusCode == HttpStatusCode.NotFound) { return(await CreateDatasetAsync(datasetReference, resource, createOptions, cancellationToken).ConfigureAwait(false));; } }
private InsertRequest CreateInsertDatasetRequest(DatasetReference datasetReference, Dataset resource, CreateDatasetOptions options) { GaxPreconditions.CheckNotNull(datasetReference, nameof(datasetReference)); GaxPreconditions.CheckArgument( resource?.DatasetReference == null || datasetReference.ReferencesSameAs(resource.DatasetReference), nameof(resource.DatasetReference), $"If {nameof(resource.DatasetReference)} is specified, it must be the same as {nameof(datasetReference)}"); resource ??= new Dataset(); resource.DatasetReference ??= datasetReference; resource.Location ??= DefaultLocation; var request = Service.Datasets.Insert(resource, datasetReference.ProjectId); options?.ModifyRequest(request); return(request); }