Browse Source

Fix to state change.

pull/470/head
Sebastian 6 years ago
parent
commit
284c58c290
  1. 2
      backend/src/Squidex.Domain.Apps.Entities/Apps/State/AppState.cs
  2. 9
      backend/src/Squidex.Domain.Apps.Entities/Assets/State/AssetState.cs
  3. 30
      backend/src/Squidex.Infrastructure/Commands/Is.cs

2
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;

9
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;

30
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<T>(ISet<T>? oldValue, [NotNullWhen(true)] ISet<T>? newValue)
{
return newValue != null && (oldValue == null || !newValue.SetEquals(oldValue));
}
public static bool Change<TKey, TValue>(IReadOnlyDictionary<TKey, TValue>? oldValue, [NotNullWhen(true)] IReadOnlyDictionary<TKey, TValue>? newValue) where TKey : notnull
{
return newValue != null && (oldValue == null || !newValue.EqualsDictionary(oldValue));
}
}
}
Loading…
Cancel
Save