From 7b43d77017a5bd0897fcdf3909d44da45f03537e Mon Sep 17 00:00:00 2001 From: Sebastian Stehle Date: Mon, 29 Jul 2019 22:04:28 +0200 Subject: [PATCH] Remove cosmos support. --- .../Assets/MongoAssetRepository.cs | 13 +++----- .../Contents/MongoContentCollection.cs | 5 +-- .../Contents/MongoContentRepository.cs | 6 ++-- .../History/MongoHistoryEventRepository.cs | 10 +----- .../Rules/MongoRuleEventRepository.cs | 5 +-- .../MongoPersistedGrantStore.cs | 5 +-- .../MongoRoleStore.cs | 20 ++++++++++-- .../MongoUserStore.cs | 32 +++++++++++++------ .../EventSourcing/CosmosDbEventStore.cs | 14 ++++++++ .../EventSourcing/MongoEventStore.cs | 5 +-- .../Migrations/MongoMigrationStatus.cs | 5 +-- .../MongoDb/MongoDbEngine.cs | 1 - .../MongoDb/MongoDbOptions.cs | 5 --- .../MongoDb/MongoRepositoryBase.cs | 18 ++++++++++- .../States/MongoSnapshotStore.cs | 5 +-- .../UsageTracking/MongoUsageRepository.cs | 5 +-- .../Config/Domain/EventStoreServices.cs | 4 ++- src/Squidex/Config/Domain/StoreServices.cs | 2 ++ src/Squidex/Squidex.csproj | 2 +- src/Squidex/appsettings.json | 4 +-- .../EventSourcing/MongoEventStoreFixture.cs | 3 +- .../MongoDb/ConvertOldSnapshotStores.cs | 12 +------ .../Migrations/MongoDb/RenameSlugField.cs | 12 +------ 23 files changed, 113 insertions(+), 80 deletions(-) diff --git a/src/Squidex.Domain.Apps.Entities.MongoDb/Assets/MongoAssetRepository.cs b/src/Squidex.Domain.Apps.Entities.MongoDb/Assets/MongoAssetRepository.cs index b09261e24..8fcec63f8 100644 --- a/src/Squidex.Domain.Apps.Entities.MongoDb/Assets/MongoAssetRepository.cs +++ b/src/Squidex.Domain.Apps.Entities.MongoDb/Assets/MongoAssetRepository.cs @@ -24,14 +24,9 @@ namespace Squidex.Domain.Apps.Entities.MongoDb.Assets { public sealed partial class MongoAssetRepository : MongoRepositoryBase, IAssetRepository { - private readonly MongoDbOptions options; - public MongoAssetRepository(IMongoDatabase database, IOptions options) - : base(database) + : base(database, options) { - Guard.NotNull(options, nameof(options)); - - this.options = options.Value; } protected override string CollectionName() @@ -53,7 +48,7 @@ namespace Squidex.Domain.Apps.Entities.MongoDb.Assets .Descending(x => x.LastModified), new CreateIndexOptions { - Name = options.IsDocumentDb ? "FileName_Tags" : null + Name = Options.IsDocumentDb ? "FileName_Tags" : null }), new CreateIndexModel( Index @@ -62,7 +57,7 @@ namespace Squidex.Domain.Apps.Entities.MongoDb.Assets .Ascending(x => x.FileHash), new CreateIndexOptions { - Name = options.IsDocumentDb ? "FileHash" : null + Name = Options.IsDocumentDb ? "FileHash" : null }), new CreateIndexModel( Index @@ -71,7 +66,7 @@ namespace Squidex.Domain.Apps.Entities.MongoDb.Assets .Ascending(x => x.Slug), new CreateIndexOptions { - Name = options.IsDocumentDb ? "Slug" : null + Name = Options.IsDocumentDb ? "Slug" : null }) }, ct); diff --git a/src/Squidex.Domain.Apps.Entities.MongoDb/Contents/MongoContentCollection.cs b/src/Squidex.Domain.Apps.Entities.MongoDb/Contents/MongoContentCollection.cs index 005a09466..8201f4d02 100644 --- a/src/Squidex.Domain.Apps.Entities.MongoDb/Contents/MongoContentCollection.cs +++ b/src/Squidex.Domain.Apps.Entities.MongoDb/Contents/MongoContentCollection.cs @@ -10,6 +10,7 @@ using System.Collections.Generic; using System.Linq; using System.Threading; using System.Threading.Tasks; +using Microsoft.Extensions.Options; using MongoDB.Bson; using MongoDB.Driver; using NodaTime; @@ -33,8 +34,8 @@ namespace Squidex.Domain.Apps.Entities.MongoDb.Contents private readonly IAppProvider appProvider; private readonly IJsonSerializer serializer; - public MongoContentCollection(IMongoDatabase database, IJsonSerializer serializer, IAppProvider appProvider) - : base(database) + public MongoContentCollection(IMongoDatabase database, IOptions options, IJsonSerializer serializer, IAppProvider appProvider) + : base(database, options) { this.appProvider = appProvider; diff --git a/src/Squidex.Domain.Apps.Entities.MongoDb/Contents/MongoContentRepository.cs b/src/Squidex.Domain.Apps.Entities.MongoDb/Contents/MongoContentRepository.cs index e6c5c2f5f..0cde952dd 100644 --- a/src/Squidex.Domain.Apps.Entities.MongoDb/Contents/MongoContentRepository.cs +++ b/src/Squidex.Domain.Apps.Entities.MongoDb/Contents/MongoContentRepository.cs @@ -9,6 +9,7 @@ using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; +using Microsoft.Extensions.Options; using MongoDB.Driver; using NodaTime; using Squidex.Domain.Apps.Core.Contents; @@ -22,6 +23,7 @@ using Squidex.Domain.Apps.Events.Contents; using Squidex.Infrastructure; using Squidex.Infrastructure.Json; using Squidex.Infrastructure.Log; +using Squidex.Infrastructure.MongoDb; using Squidex.Infrastructure.Queries; namespace Squidex.Domain.Apps.Entities.MongoDb.Contents @@ -41,7 +43,7 @@ namespace Squidex.Domain.Apps.Entities.MongoDb.Contents StatusSerializer.Register(); } - public MongoContentRepository(IMongoDatabase database, IAppProvider appProvider, IJsonSerializer serializer, ITextIndexer indexer, TypeNameRegistry typeNameRegistry) + public MongoContentRepository(IMongoDatabase database, IOptions options, IAppProvider appProvider, IJsonSerializer serializer, ITextIndexer indexer, TypeNameRegistry typeNameRegistry) { Guard.NotNull(appProvider, nameof(appProvider)); Guard.NotNull(database, nameof(database)); @@ -57,7 +59,7 @@ namespace Squidex.Domain.Apps.Entities.MongoDb.Contents typeAssetDeleted = typeNameRegistry.GetName(); typeContentDeleted = typeNameRegistry.GetName(); - contents = new MongoContentCollection(database, serializer, appProvider); + contents = new MongoContentCollection(database, options, serializer, appProvider); } public Task InitializeAsync(CancellationToken ct = default) diff --git a/src/Squidex.Domain.Apps.Entities.MongoDb/History/MongoHistoryEventRepository.cs b/src/Squidex.Domain.Apps.Entities.MongoDb/History/MongoHistoryEventRepository.cs index cb76c8bc1..d959438e6 100644 --- a/src/Squidex.Domain.Apps.Entities.MongoDb/History/MongoHistoryEventRepository.cs +++ b/src/Squidex.Domain.Apps.Entities.MongoDb/History/MongoHistoryEventRepository.cs @@ -10,7 +10,6 @@ using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Options; -using MongoDB.Bson.Serialization; using MongoDB.Driver; using Squidex.Domain.Apps.Entities.History; using Squidex.Domain.Apps.Entities.History.Repositories; @@ -21,15 +20,8 @@ namespace Squidex.Domain.Apps.Entities.MongoDb.History public class MongoHistoryEventRepository : MongoRepositoryBase, IHistoryEventRepository { public MongoHistoryEventRepository(IMongoDatabase database, IOptions options) - : base(database) + : base(database, options) { - if (options.Value.IsCosmosDb) - { - var classMap = BsonClassMap.RegisterClassMap(); - - classMap.MapProperty(x => x.Created).SetElementName("_ts"); - classMap.AutoMap(); - } } protected override string CollectionName() diff --git a/src/Squidex.Domain.Apps.Entities.MongoDb/Rules/MongoRuleEventRepository.cs b/src/Squidex.Domain.Apps.Entities.MongoDb/Rules/MongoRuleEventRepository.cs index eada85ff1..e97ea07da 100644 --- a/src/Squidex.Domain.Apps.Entities.MongoDb/Rules/MongoRuleEventRepository.cs +++ b/src/Squidex.Domain.Apps.Entities.MongoDb/Rules/MongoRuleEventRepository.cs @@ -9,6 +9,7 @@ using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; +using Microsoft.Extensions.Options; using MongoDB.Driver; using NodaTime; using Squidex.Domain.Apps.Core.HandleRules; @@ -22,8 +23,8 @@ namespace Squidex.Domain.Apps.Entities.MongoDb.Rules { public sealed class MongoRuleEventRepository : MongoRepositoryBase, IRuleEventRepository { - public MongoRuleEventRepository(IMongoDatabase database) - : base(database) + public MongoRuleEventRepository(IMongoDatabase database, IOptions options) + : base(database, options) { } diff --git a/src/Squidex.Domain.Users.MongoDb/Infrastructure/MongoPersistedGrantStore.cs b/src/Squidex.Domain.Users.MongoDb/Infrastructure/MongoPersistedGrantStore.cs index b20e66e9a..30f970f12 100644 --- a/src/Squidex.Domain.Users.MongoDb/Infrastructure/MongoPersistedGrantStore.cs +++ b/src/Squidex.Domain.Users.MongoDb/Infrastructure/MongoPersistedGrantStore.cs @@ -10,6 +10,7 @@ using System.Threading; using System.Threading.Tasks; using IdentityServer4.Models; using IdentityServer4.Stores; +using Microsoft.Extensions.Options; using MongoDB.Bson; using MongoDB.Bson.Serialization; using MongoDB.Bson.Serialization.Serializers; @@ -30,8 +31,8 @@ namespace Squidex.Domain.Users.MongoDb.Infrastructure }); } - public MongoPersistedGrantStore(IMongoDatabase database) - : base(database) + public MongoPersistedGrantStore(IMongoDatabase database, IOptions options) + : base(database, options) { } diff --git a/src/Squidex.Domain.Users.MongoDb/MongoRoleStore.cs b/src/Squidex.Domain.Users.MongoDb/MongoRoleStore.cs index f4fdbc871..779bc717e 100644 --- a/src/Squidex.Domain.Users.MongoDb/MongoRoleStore.cs +++ b/src/Squidex.Domain.Users.MongoDb/MongoRoleStore.cs @@ -8,6 +8,7 @@ using System.Threading; using System.Threading.Tasks; using Microsoft.AspNetCore.Identity; +using Microsoft.Extensions.Options; using MongoDB.Bson; using MongoDB.Bson.Serialization; using MongoDB.Bson.Serialization.Serializers; @@ -30,8 +31,8 @@ namespace Squidex.Domain.Users.MongoDb }); } - public MongoRoleStore(IMongoDatabase database) - : base(database) + public MongoRoleStore(IMongoDatabase database, IOptions options) + : base(database, options) { } @@ -40,10 +41,23 @@ namespace Squidex.Domain.Users.MongoDb return "Identity_Roles"; } + protected override string ShardKey() + { + return "Shard"; + } + protected override Task SetupCollectionAsync(IMongoCollection collection, CancellationToken ct = default) { return collection.Indexes.CreateOneAsync( - new CreateIndexModel(Index.Ascending(x => x.NormalizedName), new CreateIndexOptions { Unique = true }), cancellationToken: ct); + new CreateIndexModel( + Index + .Ascending("Shard") + .Ascending(x => x.NormalizedName), + new CreateIndexOptions + { + Unique = true + }), + cancellationToken: ct); } protected override MongoCollectionSettings CollectionSettings() diff --git a/src/Squidex.Domain.Users.MongoDb/MongoUserStore.cs b/src/Squidex.Domain.Users.MongoDb/MongoUserStore.cs index 40ff5ed33..6c1e50526 100644 --- a/src/Squidex.Domain.Users.MongoDb/MongoUserStore.cs +++ b/src/Squidex.Domain.Users.MongoDb/MongoUserStore.cs @@ -17,7 +17,6 @@ using MongoDB.Bson; using MongoDB.Bson.Serialization; using MongoDB.Bson.Serialization.Serializers; using MongoDB.Driver; -using Squidex.Infrastructure; using Squidex.Infrastructure.MongoDb; using Squidex.Infrastructure.Tasks; @@ -43,7 +42,6 @@ namespace Squidex.Domain.Users.MongoDb private const string InternalLoginProvider = "[AspNetUserStore]"; private const string AuthenticatorKeyTokenName = "AuthenticatorKey"; private const string RecoveryCodeTokenName = "RecoveryCodes"; - private readonly MongoDbOptions options; static MongoUserStore() { @@ -108,11 +106,8 @@ namespace Squidex.Domain.Users.MongoDb } public MongoUserStore(IMongoDatabase database, IOptions options) - : base(database) + : base(database, options) { - Guard.NotNull(options, nameof(options)); - - this.options = options.Value; } protected override string CollectionName() @@ -120,16 +115,35 @@ namespace Squidex.Domain.Users.MongoDb return "Identity_Users"; } + protected override string ShardKey() + { + return "Shard"; + } + protected override Task SetupCollectionAsync(IMongoCollection collection, CancellationToken ct = default) { return collection.Indexes.CreateManyAsync( new[] { - options.IsDocumentDb ? + Options.IsDocumentDb ? new CreateIndexModel(Index.Ascending("Logins.LoginProvider")) : new CreateIndexModel(Index.Ascending("Logins.LoginProvider").Ascending("Logins.ProviderKey")), - new CreateIndexModel(Index.Ascending(x => x.NormalizedUserName), new CreateIndexOptions { Unique = true }), - new CreateIndexModel(Index.Ascending(x => x.NormalizedEmail), new CreateIndexOptions { Unique = true }) + new CreateIndexModel( + Index + .Ascending("Shard") + .Ascending(x => x.NormalizedUserName), + new CreateIndexOptions + { + Unique = true + }), + new CreateIndexModel( + Index + .Ascending("Shard") + .Ascending(x => x.NormalizedEmail), + new CreateIndexOptions + { + Unique = true + }) }, ct); } diff --git a/src/Squidex.Infrastructure.Azure/EventSourcing/CosmosDbEventStore.cs b/src/Squidex.Infrastructure.Azure/EventSourcing/CosmosDbEventStore.cs index 5f094bd83..27431204a 100644 --- a/src/Squidex.Infrastructure.Azure/EventSourcing/CosmosDbEventStore.cs +++ b/src/Squidex.Infrastructure.Azure/EventSourcing/CosmosDbEventStore.cs @@ -78,12 +78,26 @@ namespace Squidex.Infrastructure.EventSourcing await documentClient.CreateDocumentCollectionIfNotExistsAsync(databaseUri, new DocumentCollection { + PartitionKey = new PartitionKeyDefinition + { + Paths = new Collection + { + "/PartitionId" + } + }, Id = Constants.LeaseCollection }); await documentClient.CreateDocumentCollectionIfNotExistsAsync(databaseUri, new DocumentCollection { + PartitionKey = new PartitionKeyDefinition + { + Paths = new Collection + { + "/eventStream" + } + }, IndexingPolicy = new IndexingPolicy { IncludedPaths = new Collection diff --git a/src/Squidex.Infrastructure.MongoDb/EventSourcing/MongoEventStore.cs b/src/Squidex.Infrastructure.MongoDb/EventSourcing/MongoEventStore.cs index c33c11f40..e74cfaf0e 100644 --- a/src/Squidex.Infrastructure.MongoDb/EventSourcing/MongoEventStore.cs +++ b/src/Squidex.Infrastructure.MongoDb/EventSourcing/MongoEventStore.cs @@ -7,6 +7,7 @@ using System.Threading; using System.Threading.Tasks; +using Microsoft.Extensions.Options; using MongoDB.Bson; using MongoDB.Driver; using Squidex.Infrastructure.MongoDb; @@ -26,8 +27,8 @@ namespace Squidex.Infrastructure.EventSourcing get { return Database.GetCollection(CollectionName()); } } - public MongoEventStore(IMongoDatabase database, IEventNotifier notifier) - : base(database) + public MongoEventStore(IMongoDatabase database, IOptions options, IEventNotifier notifier) + : base(database, options) { Guard.NotNull(notifier, nameof(notifier)); diff --git a/src/Squidex.Infrastructure.MongoDb/Migrations/MongoMigrationStatus.cs b/src/Squidex.Infrastructure.MongoDb/Migrations/MongoMigrationStatus.cs index 1fe6eb442..f8a520828 100644 --- a/src/Squidex.Infrastructure.MongoDb/Migrations/MongoMigrationStatus.cs +++ b/src/Squidex.Infrastructure.MongoDb/Migrations/MongoMigrationStatus.cs @@ -6,6 +6,7 @@ // ========================================================================== using System.Threading.Tasks; +using Microsoft.Extensions.Options; using MongoDB.Driver; using Squidex.Infrastructure.MongoDb; @@ -16,8 +17,8 @@ namespace Squidex.Infrastructure.Migrations private const string DefaultId = "Default"; private static readonly FindOneAndUpdateOptions UpsertFind = new FindOneAndUpdateOptions { IsUpsert = true }; - public MongoMigrationStatus(IMongoDatabase database) - : base(database) + public MongoMigrationStatus(IMongoDatabase database, IOptions options) + : base(database, options) { } diff --git a/src/Squidex.Infrastructure.MongoDb/MongoDb/MongoDbEngine.cs b/src/Squidex.Infrastructure.MongoDb/MongoDb/MongoDbEngine.cs index 14591c8d0..8dff4092f 100644 --- a/src/Squidex.Infrastructure.MongoDb/MongoDb/MongoDbEngine.cs +++ b/src/Squidex.Infrastructure.MongoDb/MongoDb/MongoDbEngine.cs @@ -9,7 +9,6 @@ namespace Squidex.Infrastructure.MongoDb { public enum MongoDbEngine { - CosmosDb, DocumentDb, MongoDb, } diff --git a/src/Squidex.Infrastructure.MongoDb/MongoDb/MongoDbOptions.cs b/src/Squidex.Infrastructure.MongoDb/MongoDb/MongoDbOptions.cs index d18599b03..6df6b5655 100644 --- a/src/Squidex.Infrastructure.MongoDb/MongoDb/MongoDbOptions.cs +++ b/src/Squidex.Infrastructure.MongoDb/MongoDb/MongoDbOptions.cs @@ -11,11 +11,6 @@ namespace Squidex.Infrastructure.MongoDb { public MongoDbEngine Engine { get; set; } = MongoDbEngine.MongoDb; - public bool IsCosmosDb - { - get { return Engine == MongoDbEngine.CosmosDb; } - } - public bool IsDocumentDb { get { return Engine == MongoDbEngine.DocumentDb; } diff --git a/src/Squidex.Infrastructure.MongoDb/MongoDb/MongoRepositoryBase.cs b/src/Squidex.Infrastructure.MongoDb/MongoDb/MongoRepositoryBase.cs index 689bdfe8e..923d57660 100644 --- a/src/Squidex.Infrastructure.MongoDb/MongoDb/MongoRepositoryBase.cs +++ b/src/Squidex.Infrastructure.MongoDb/MongoDb/MongoRepositoryBase.cs @@ -9,6 +9,8 @@ using System; using System.Globalization; using System.Threading; using System.Threading.Tasks; +using Microsoft.Extensions.Options; +using MongoDB.Bson; using MongoDB.Driver; using Squidex.Infrastructure.Tasks; @@ -29,6 +31,7 @@ namespace Squidex.Infrastructure.MongoDb protected static readonly ProjectionDefinitionBuilder Projection = Builders.Projection; private readonly IMongoDatabase mongoDatabase; + private readonly MongoDbOptions options; private Lazy> mongoCollection; protected IMongoCollection Collection @@ -41,6 +44,11 @@ namespace Squidex.Infrastructure.MongoDb get { return mongoDatabase; } } + protected MongoDbOptions Options + { + get { return options; } + } + static MongoRepositoryBase() { RefTokenSerializer.Register(); @@ -48,12 +56,15 @@ namespace Squidex.Infrastructure.MongoDb InstantSerializer.Register(); } - protected MongoRepositoryBase(IMongoDatabase database) + protected MongoRepositoryBase(IMongoDatabase database, IOptions options) { Guard.NotNull(database, nameof(database)); + Guard.NotNull(options, nameof(options)); mongoDatabase = database; mongoCollection = CreateCollection(); + + this.options = options.Value; } protected virtual MongoCollectionSettings CollectionSettings() @@ -61,6 +72,11 @@ namespace Squidex.Infrastructure.MongoDb return new MongoCollectionSettings(); } + protected virtual string ShardKey() + { + return "_id"; + } + protected virtual string CollectionName() { return string.Format(CultureInfo.InvariantCulture, CollectionFormat, typeof(TEntity).Name); diff --git a/src/Squidex.Infrastructure.MongoDb/States/MongoSnapshotStore.cs b/src/Squidex.Infrastructure.MongoDb/States/MongoSnapshotStore.cs index 61afdd1cf..f855fda36 100644 --- a/src/Squidex.Infrastructure.MongoDb/States/MongoSnapshotStore.cs +++ b/src/Squidex.Infrastructure.MongoDb/States/MongoSnapshotStore.cs @@ -9,6 +9,7 @@ using System; using System.Linq; using System.Threading; using System.Threading.Tasks; +using Microsoft.Extensions.Options; using MongoDB.Bson; using MongoDB.Driver; using Newtonsoft.Json; @@ -19,8 +20,8 @@ namespace Squidex.Infrastructure.States { public class MongoSnapshotStore : MongoRepositoryBase>, ISnapshotStore { - public MongoSnapshotStore(IMongoDatabase database, JsonSerializer jsonSerializer) - : base(database) + public MongoSnapshotStore(IMongoDatabase database, IOptions options, JsonSerializer jsonSerializer) + : base(database, options) { Guard.NotNull(jsonSerializer, nameof(jsonSerializer)); diff --git a/src/Squidex.Infrastructure.MongoDb/UsageTracking/MongoUsageRepository.cs b/src/Squidex.Infrastructure.MongoDb/UsageTracking/MongoUsageRepository.cs index b6e633fa5..f5e682ba5 100644 --- a/src/Squidex.Infrastructure.MongoDb/UsageTracking/MongoUsageRepository.cs +++ b/src/Squidex.Infrastructure.MongoDb/UsageTracking/MongoUsageRepository.cs @@ -10,6 +10,7 @@ using System.Collections.Generic; using System.Linq; using System.Threading; using System.Threading.Tasks; +using Microsoft.Extensions.Options; using MongoDB.Driver; using Squidex.Infrastructure.MongoDb; @@ -19,8 +20,8 @@ namespace Squidex.Infrastructure.UsageTracking { private static readonly BulkWriteOptions Unordered = new BulkWriteOptions { IsOrdered = false }; - public MongoUsageRepository(IMongoDatabase database) - : base(database) + public MongoUsageRepository(IMongoDatabase database, IOptions options) + : base(database, options) { } diff --git a/src/Squidex/Config/Domain/EventStoreServices.cs b/src/Squidex/Config/Domain/EventStoreServices.cs index 3f9158605..b16b6b82f 100644 --- a/src/Squidex/Config/Domain/EventStoreServices.cs +++ b/src/Squidex/Config/Domain/EventStoreServices.cs @@ -11,6 +11,7 @@ using EventStore.ClientAPI; using Microsoft.Azure.Documents.Client; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Options; using MongoDB.Driver; using Newtonsoft.Json; using Squidex.Infrastructure; @@ -18,6 +19,7 @@ using Squidex.Infrastructure.Diagnostics; using Squidex.Infrastructure.EventSourcing; using Squidex.Infrastructure.EventSourcing.Grains; using Squidex.Infrastructure.Json; +using Squidex.Infrastructure.MongoDb; using Squidex.Infrastructure.States; namespace Squidex.Config.Domain @@ -38,7 +40,7 @@ namespace Squidex.Config.Domain var mongoClient = Singletons.GetOrAdd(mongoConfiguration, s => new MongoClient(s)); var mongDatabase = mongoClient.GetDatabase(mongoDatabaseName); - return new MongoEventStore(mongDatabase, c.GetRequiredService()); + return new MongoEventStore(mongDatabase, c.GetRequiredService>(), c.GetRequiredService()); }) .As(); }, diff --git a/src/Squidex/Config/Domain/StoreServices.cs b/src/Squidex/Config/Domain/StoreServices.cs index 96b775fa0..213ba9f48 100644 --- a/src/Squidex/Config/Domain/StoreServices.cs +++ b/src/Squidex/Config/Domain/StoreServices.cs @@ -11,6 +11,7 @@ using IdentityServer4.Stores; using Microsoft.AspNetCore.Identity; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Options; using Migrate_01.Migrations.MongoDb; using MongoDB.Driver; using Squidex.Domain.Apps.Entities; @@ -104,6 +105,7 @@ namespace Squidex.Config.Domain services.AddSingletonAs(c => new MongoContentRepository( c.GetRequiredService().GetDatabase(mongoContentDatabaseName), + c.GetRequiredService>(), c.GetRequiredService(), c.GetRequiredService(), c.GetRequiredService(), diff --git a/src/Squidex/Squidex.csproj b/src/Squidex/Squidex.csproj index 1b139bb8a..8687a36cc 100644 --- a/src/Squidex/Squidex.csproj +++ b/src/Squidex/Squidex.csproj @@ -72,7 +72,7 @@ - + diff --git a/src/Squidex/appsettings.json b/src/Squidex/appsettings.json index 6e54b1455..4c6258cbb 100644 --- a/src/Squidex/appsettings.json +++ b/src/Squidex/appsettings.json @@ -296,7 +296,7 @@ * * Supported: MongoDB, Development */ - "clustering": "MongoDB", + "clustering": "Development", /* * The port is used to share messages between all cluster members. Must be accessible within your cluster or network. */ @@ -397,7 +397,7 @@ */ "database": "Squidex", /* - * The MongoDb Engine. Supported: MongoDb, CosmosDb, DocumentDb + * The MongoDb Engine. Supported: MongoDb, DocumentDb */ "engine": "MongoDb" } diff --git a/tests/Squidex.Infrastructure.Tests/EventSourcing/MongoEventStoreFixture.cs b/tests/Squidex.Infrastructure.Tests/EventSourcing/MongoEventStoreFixture.cs index 6e77f0abd..9080ed7cf 100644 --- a/tests/Squidex.Infrastructure.Tests/EventSourcing/MongoEventStoreFixture.cs +++ b/tests/Squidex.Infrastructure.Tests/EventSourcing/MongoEventStoreFixture.cs @@ -7,6 +7,7 @@ using System; using FakeItEasy; +using Microsoft.Extensions.Options; using MongoDB.Driver; using Newtonsoft.Json; using Squidex.Infrastructure.MongoDb; @@ -28,7 +29,7 @@ namespace Squidex.Infrastructure.EventSourcing BsonJsonConvention.Register(JsonSerializer.Create(JsonHelper.DefaultSettings())); - EventStore = new MongoEventStore(mongoDatabase, notifier); + EventStore = new MongoEventStore(mongoDatabase, Options.Create(new MongoDbOptions()), notifier); EventStore.InitializeAsync().Wait(); } diff --git a/tools/Migrate_01/Migrations/MongoDb/ConvertOldSnapshotStores.cs b/tools/Migrate_01/Migrations/MongoDb/ConvertOldSnapshotStores.cs index 2fd0cdf3f..fac1c06a4 100644 --- a/tools/Migrate_01/Migrations/MongoDb/ConvertOldSnapshotStores.cs +++ b/tools/Migrate_01/Migrations/MongoDb/ConvertOldSnapshotStores.cs @@ -7,33 +7,23 @@ using System.Linq; using System.Threading.Tasks; -using Microsoft.Extensions.Options; using MongoDB.Bson; using MongoDB.Driver; using Squidex.Infrastructure.Migrations; -using Squidex.Infrastructure.MongoDb; -using Squidex.Infrastructure.Tasks; namespace Migrate_01.Migrations.MongoDb { public sealed class ConvertOldSnapshotStores : IMigration { private readonly IMongoDatabase database; - private readonly MongoDbOptions options; - public ConvertOldSnapshotStores(IMongoDatabase database, IOptions options) + public ConvertOldSnapshotStores(IMongoDatabase database) { this.database = database; - this.options = options.Value; } public Task UpdateAsync() { - if (options.IsCosmosDb) - { - return TaskHelper.Done; - } - var collections = new[] { "States_Apps", diff --git a/tools/Migrate_01/Migrations/MongoDb/RenameSlugField.cs b/tools/Migrate_01/Migrations/MongoDb/RenameSlugField.cs index 20de74c1f..061600643 100644 --- a/tools/Migrate_01/Migrations/MongoDb/RenameSlugField.cs +++ b/tools/Migrate_01/Migrations/MongoDb/RenameSlugField.cs @@ -6,33 +6,23 @@ // ========================================================================== using System.Threading.Tasks; -using Microsoft.Extensions.Options; using MongoDB.Bson; using MongoDB.Driver; using Squidex.Infrastructure.Migrations; -using Squidex.Infrastructure.MongoDb; -using Squidex.Infrastructure.Tasks; namespace Migrate_01.Migrations.MongoDb { public sealed class RenameSlugField : IMigration { private readonly IMongoDatabase database; - private readonly MongoDbOptions options; - public RenameSlugField(IMongoDatabase database, IOptions options) + public RenameSlugField(IMongoDatabase database) { this.database = database; - this.options = options.Value; } public Task UpdateAsync() { - if (options.IsCosmosDb) - { - return TaskHelper.Done; - } - var collection = database.GetCollection("States_Assets"); var update = Builders.Update.Rename("FileNameSlug", "Slug");