public async Task Initialize() { Database db = await client.CreateDatabaseIfNotExistsAsync(databaseId); Container container = await db.CreateContainerIfNotExistsAsync(containerId, "/id"); var iterator = container.GetItemQueryIterator <ReportItem>( new QueryDefinition("select * from " + containerId), requestOptions: new QueryRequestOptions() { MaxItemCount = 1 }); bool hasAdminReport = false; while (iterator.HasMoreResults && !hasAdminReport) { var item = (await iterator.ReadNextAsync()).FirstOrDefault(); hasAdminReport = item != null && item.Id == CosmosReportStorageWebExtension.AdminReportName; } if (!hasAdminReport) { await container.CreateItemAsync(CosmosReportStorageWebExtension.CreateAdminReport()); } }
public static void Register(IServiceCollection serviceProvider, IConfiguration cosmosConfig) { var storage = new CosmosMongoApiStorage(cosmosConfig["MongoConnection"], cosmosConfig["DatabaseId"], cosmosConfig["ContainerId"]); serviceProvider.AddSingleton <ICosmosApiStorage>(storage); var adminReport = storage.mongoCollection.Find(x => x.ReportName == CosmosReportStorageWebExtension.AdminReportName).FirstOrDefault(); if (adminReport == null) { storage.mongoCollection.InsertOne(ReportItemMongo.CreateFromReportItem(CosmosReportStorageWebExtension.CreateAdminReport())); } }