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