diff --git a/backend/src/Squidex.Domain.Apps.Entities/Apps/State/AppState.cs b/backend/src/Squidex.Domain.Apps.Entities/Apps/State/AppState.cs index d1300839f..fd44f7f54 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Apps/State/AppState.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Apps/State/AppState.cs @@ -145,7 +145,7 @@ namespace Squidex.Domain.Apps.Entities.Apps.State if (ev.IsMaster) { - LanguagesConfig = LanguagesConfig.MakeMaster(ev.Language); + l = LanguagesConfig.MakeMaster(ev.Language); } return l; diff --git a/backend/src/Squidex.Domain.Apps.Entities/Assets/State/AssetState.cs b/backend/src/Squidex.Domain.Apps.Entities/Assets/State/AssetState.cs index 8a39a1a60..9f06c42b6 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Assets/State/AssetState.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Assets/State/AssetState.cs @@ -11,6 +11,7 @@ using System.Runtime.Serialization; using Squidex.Domain.Apps.Core.Assets; using Squidex.Domain.Apps.Events.Assets; using Squidex.Infrastructure; +using Squidex.Infrastructure.Commands; using Squidex.Infrastructure.EventSourcing; using Squidex.Infrastructure.Reflection; @@ -101,28 +102,28 @@ namespace Squidex.Domain.Apps.Entities.Assets.State { var hasChanged = false; - if (!string.IsNullOrWhiteSpace(e.FileName) && !string.Equals(e.FileName, FileName)) + if (Is.Change(FileName, e.FileName)) { FileName = e.FileName; hasChanged = true; } - if (!string.IsNullOrWhiteSpace(e.Slug) && !string.Equals(e.Slug, Slug)) + if (Is.Change(Slug, e.Slug)) { Slug = e.Slug; hasChanged = true; } - if (e.Tags != null && !e.Tags.SetEquals(Tags)) + if (Is.Change(Tags, e.Tags)) { Tags = e.Tags; hasChanged = true; } - if (e.Metadata != null && !e.Metadata.EqualsDictionary(Metadata)) + if (Is.Change(Metadata, e.Metadata)) { Metadata = e.Metadata; diff --git a/backend/src/Squidex.Infrastructure/Commands/Is.cs b/backend/src/Squidex.Infrastructure/Commands/Is.cs new file mode 100644 index 000000000..0dc9f0912 --- /dev/null +++ b/backend/src/Squidex.Infrastructure/Commands/Is.cs @@ -0,0 +1,30 @@ +// ========================================================================== +// Squidex Headless CMS +// ========================================================================== +// Copyright (c) Squidex UG (haftungsbeschraenkt) +// All rights reserved. Licensed under the MIT license. +// ========================================================================== + +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; + +namespace Squidex.Infrastructure.Commands +{ + public static class Is + { + public static bool Change(string? oldValue, string? newValue) + { + return !string.IsNullOrWhiteSpace(newValue) && !string.Equals(oldValue, newValue); + } + + public static bool Change(ISet? oldValue, [NotNullWhen(true)] ISet? newValue) + { + return newValue != null && (oldValue == null || !newValue.SetEquals(oldValue)); + } + + public static bool Change(IReadOnlyDictionary? oldValue, [NotNullWhen(true)] IReadOnlyDictionary? newValue) where TKey : notnull + { + return newValue != null && (oldValue == null || !newValue.EqualsDictionary(oldValue)); + } + } +} \ No newline at end of file