Пример #1
0
        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());
            }
        }
Пример #2
0
        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()));
            }
        }