Browse Source

Comments

pull/849/head
Sebastian 4 years ago
parent
commit
41889b3f2b
  1. 6
      backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/FieldEnumType.cs
  2. 4
      backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/Names.cs

6
backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/FieldEnumType.cs

@ -16,13 +16,17 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
{
Name = name;
// Avoid conflicts with duplicate names.
var names = new Names();
foreach (var value in values)
{
if (!Equals(value, null))
{
AddValue(names[value.ToString()!.Slugify().ToPascalCase()], null, value);
// Get rid of special characters.
var valueName = value.ToString()!.Slugify().ToPascalCase();
AddValue(names[valueName], null, value);
}
}
}

4
backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/Names.cs

@ -11,6 +11,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
{
internal sealed class Names
{
// Reserver names that are used for other GraphQL types.
private static readonly HashSet<string> ReservedNames = new HashSet<string>(StringComparer.OrdinalIgnoreCase)
{
"Asset",
@ -23,7 +24,6 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
"JsonPrimitive",
"User"
};
private readonly Dictionary<string, int> takenNames = new Dictionary<string, int>();
public string this[string name, bool isEntity = true]
@ -44,6 +44,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
name = $"{name}Entity";
}
// Avoid duplicate names.
if (!takenNames.TryGetValue(name, out var offset))
{
takenNames[name] = 0;
@ -52,6 +53,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
takenNames[name] = ++offset;
// Add + 1 to all offsets for backwards-compatibility.
return $"{name}{offset + 1}";
}
}

Loading…
Cancel
Save