From 97ee567a1ba266faafd84ec0cb628c2c120eb16e Mon Sep 17 00:00:00 2001 From: Sebastian Date: Mon, 13 Dec 2021 17:17:24 +0100 Subject: [PATCH] Fix upsert for no result from query. --- .../DomainObject/ContentsBulkUpdateCommandMiddleware.cs | 5 +++++ .../ContentsBulkUpdateCommandMiddlewareTests.cs | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/DomainObject/ContentsBulkUpdateCommandMiddleware.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/DomainObject/ContentsBulkUpdateCommandMiddleware.cs index d48af3d23..b4c9af979 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/DomainObject/ContentsBulkUpdateCommandMiddleware.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/DomainObject/ContentsBulkUpdateCommandMiddleware.cs @@ -308,6 +308,11 @@ namespace Squidex.Domain.Apps.Entities.Contents.DomainObject throw new DomainException(T.Get("contents.bulkInsertQueryNotUnique")); } + if (existing.Count == 0 && task.CommandJob.Type == BulkUpdateContentType.Upsert) + { + return new[] { DomainId.NewGuid() }; + } + return existing.Select(x => x.Id).ToArray(); } diff --git a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/DomainObject/ContentsBulkUpdateCommandMiddlewareTests.cs b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/DomainObject/ContentsBulkUpdateCommandMiddlewareTests.cs index b94d721c8..0315d4371 100644 --- a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/DomainObject/ContentsBulkUpdateCommandMiddlewareTests.cs +++ b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/DomainObject/ContentsBulkUpdateCommandMiddlewareTests.cs @@ -102,7 +102,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.DomainObject } [Fact] - public async Task Should_upsert_content_with_with_resolved_id() + public async Task Should_upsert_content_with_resolved_id() { var requestContext = SetupContext(Permissions.AppContentsUpsert); @@ -129,7 +129,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.DomainObject } [Fact] - public async Task Should_upsert_content_with_with_resolved_ids() + public async Task Should_upsert_content_with_resolved_ids() { var requestContext = SetupContext(Permissions.AppContentsUpsert); @@ -191,7 +191,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.DomainObject { SetupContext(Permissions.AppContentsUpsert); - var (_, data, query) = CreateTestData(false); + var (_, data, query) = CreateTestData(true); var command = BulkCommand(BulkUpdateContentType.Upsert, query: query, data: data);