Пример #1
0
        internal virtual Task <CosmosDatabaseResponse> CreateDatabaseAsync(
            CosmosDatabaseSettings databaseSettings,
            int?throughput = null,
            CosmosRequestOptions requestOptions = null,
            CancellationToken cancellationToken = default(CancellationToken))
        {
            Task <CosmosResponseMessage> response = this.CreateDatabaseStreamAsync(
                streamPayload: databaseSettings.GetResourceStream(),
                throughput: throughput,
                requestOptions: requestOptions,
                cancellationToken: cancellationToken);

            return(this.client.ResponseFactory.CreateDatabaseResponse(this[databaseSettings.Id], response));
        }
        internal static Task <T> CreateDatabaseCoreAsync <T>(
            CosmosDatabaseSettings databaseSettings,
            CosmosClient client,
            Func <CosmosResponseMessage, T> responseCreator,
            CosmosRequestOptions requestOptions = null,
            int?throughput = null,
            CancellationToken cancellationToken = default(CancellationToken))
        {
            client.DocumentClient.ValidateResource(databaseSettings);

            Uri resourceUri = new Uri(Paths.Databases_Root, UriKind.Relative);

            return(ExecUtils.ProcessResourceOperationAsync <T>(
                       client,
                       resourceUri,
                       ResourceType.Database,
                       OperationType.Create,
                       requestOptions,
                       partitionKey: null,
                       streamPayload: databaseSettings.GetResourceStream(),
                       requestEnricher: (httpRequestMessage) => httpRequestMessage.AddThroughputHeader(throughput),
                       responseCreator: responseCreator,
                       cancellationToken: cancellationToken));
        }