diff --git a/backend/src/Migrations/Migrations/MongoDb/AddAppIdToEventStream.cs b/backend/src/Migrations/Migrations/MongoDb/AddAppIdToEventStream.cs index b1e50f5e3..0a07771af 100644 --- a/backend/src/Migrations/Migrations/MongoDb/AddAppIdToEventStream.cs +++ b/backend/src/Migrations/Migrations/MongoDb/AddAppIdToEventStream.cs @@ -7,6 +7,7 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Threading.Tasks; @@ -72,14 +73,14 @@ namespace Migrations.Migrations.MongoDb metadata["AggregateId"] = newDomainId; metadata.Remove("AppId"); } + } - var filter = Builders.Filter.Eq("_id", document["_id"].AsString); + var filter = Builders.Filter.Eq("_id", document["_id"].AsString); - updates.Add(new ReplaceOneModel(filter, document) - { - IsUpsert = true - }); - } + updates.Add(new ReplaceOneModel(filter, document) + { + IsUpsert = true + }); } await collectionNew.BulkWriteAsync(updates, writeOptions); @@ -104,6 +105,8 @@ namespace Migrations.Migrations.MongoDb private static bool TryGetAppId(BsonDocument document, [MaybeNullWhen(false)] out string appId) { + const int guidLength = 36; + foreach (var @event in document["Events"].AsBsonArray) { var metadata = @event["Metadata"].AsBsonDocument; @@ -113,6 +116,27 @@ namespace Migrations.Migrations.MongoDb appId = value.AsString; return true; } + + if (metadata.TryGetValue("AggregateId", out var aggregateId)) + { + var parts = aggregateId.AsString.Split("--"); + + if (parts.Length == 2) + { + appId = parts[0]; + return true; + } + } + + var payload = @event["Payload"].AsString; + + var indexOfAppId = payload.IndexOf("appId\":\"", StringComparison.OrdinalIgnoreCase); + + if (indexOfAppId > 0) + { + appId = payload.Substring(indexOfAppId, guidLength); + return true; + } } appId = null; diff --git a/backend/src/Squidex.Domain.Apps.Entities.MongoDb/Contents/MongoContentCollectionPublished.cs b/backend/src/Squidex.Domain.Apps.Entities.MongoDb/Contents/MongoContentCollectionPublished.cs index 9fea155a5..231b94836 100644 --- a/backend/src/Squidex.Domain.Apps.Entities.MongoDb/Contents/MongoContentCollectionPublished.cs +++ b/backend/src/Squidex.Domain.Apps.Entities.MongoDb/Contents/MongoContentCollectionPublished.cs @@ -54,7 +54,7 @@ namespace Squidex.Domain.Apps.Entities.MongoDb.Contents protected override string CollectionName() { - return "State_Contents_Published2"; + return "States_Contents_Published2"; } protected override async Task SetupCollectionAsync(IMongoCollection collection, CancellationToken ct = default)