Browse Source

Remove more allocations.

pull/885/head
Sebastian 4 years ago
parent
commit
5c06d3ee60
  1. 4
      backend/src/Squidex.Domain.Apps.Core.Operations/ConvertContent/FieldConverters.cs
  2. 18
      backend/src/Squidex.Domain.Apps.Core.Operations/ExtractReferenceIds/ContentReferencesExtensions.cs
  3. 2
      backend/src/Squidex.Domain.Apps.Core.Operations/GenerateFilters/FilterVisitor.cs
  4. 2
      backend/src/Squidex.Domain.Apps.Core.Operations/HandleRules/RuleService.cs
  5. 2
      backend/src/Squidex.Domain.Apps.Core.Operations/HandleRules/RuleTypeProvider.cs
  6. 4
      backend/src/Squidex.Domain.Apps.Entities/Contents/Text/Extensions.cs
  7. 2
      backend/src/Squidex/Areas/Api/Config/OpenApi/FixProcessor.cs

4
backend/src/Squidex.Domain.Apps.Core.Operations/ConvertContent/FieldConverters.cs

@ -32,7 +32,7 @@ namespace Squidex.Domain.Apps.Core.ConvertContent
{ {
return (data, field) => return (data, field) =>
{ {
foreach (var value in data.Values) foreach (var (_, value) in data)
{ {
if (value.Type == JsonValueType.Null) if (value.Type == JsonValueType.Null)
{ {
@ -72,7 +72,7 @@ namespace Squidex.Domain.Apps.Core.ConvertContent
} }
else if (data.Count > 0) else if (data.Count > 0)
{ {
result[iv] = data.Values.First(); result[iv] = data.First().Value;
} }
return result; return result;

18
backend/src/Squidex.Domain.Apps.Core.Operations/ExtractReferenceIds/ContentReferencesExtensions.cs

@ -31,7 +31,7 @@ namespace Squidex.Domain.Apps.Core.ExtractReferenceIds
if (value is JsonObject obj) if (value is JsonObject obj)
{ {
foreach (var nested in obj.Values) foreach (var (_, nested) in obj)
{ {
if (CanHaveReference(nested)) if (CanHaveReference(nested))
{ {
@ -43,7 +43,21 @@ namespace Squidex.Domain.Apps.Core.ExtractReferenceIds
return false; return false;
} }
return source.Values.NotNull().SelectMany(x => x.Values).Any(CanHaveReference); foreach (var (_, field) in source)
{
if (field != null)
{
foreach (var (_, value) in field)
{
if (CanHaveReference(value))
{
return true;
}
}
}
}
return false;
} }
public static HashSet<DomainId> GetReferencedIds(this ContentData source, Schema schema, public static HashSet<DomainId> GetReferencedIds(this ContentData source, Schema schema,

2
backend/src/Squidex.Domain.Apps.Core.Operations/GenerateFilters/FilterVisitor.cs

@ -171,7 +171,7 @@ namespace Squidex.Domain.Apps.Core.GenerateFilters
var nestedArgs = args with { Level = args.Level + 1 }; var nestedArgs = args with { Level = args.Level + 1 };
foreach (var schema in args.Components.Resolve(schemaIds).Values) foreach (var (_, schema) in args.Components.Resolve(schemaIds))
{ {
var componentName = schema.DisplayName(); var componentName = schema.DisplayName();

2
backend/src/Squidex.Domain.Apps.Core.Operations/HandleRules/RuleService.cs

@ -339,7 +339,7 @@ namespace Squidex.Domain.Apps.Core.HandleRules
public string GetName(AppEvent @event) public string GetName(AppEvent @event)
{ {
foreach (var handler in ruleTriggerHandlers.Values) foreach (var (_, handler) in ruleTriggerHandlers)
{ {
if (handler.Handles(@event)) if (handler.Handles(@event))
{ {

2
backend/src/Squidex.Domain.Apps.Core.Operations/HandleRules/RuleTypeProvider.cs

@ -208,7 +208,7 @@ namespace Squidex.Domain.Apps.Core.HandleRules
public void Map(TypeNameRegistry typeNameRegistry) public void Map(TypeNameRegistry typeNameRegistry)
{ {
foreach (var actionType in actionTypes.Values) foreach (var (_, actionType) in actionTypes)
{ {
typeNameRegistry.Map(actionType.Type, actionType.Type.Name); typeNameRegistry.Map(actionType.Type, actionType.Type.Name);
} }

4
backend/src/Squidex.Domain.Apps.Entities/Contents/Text/Extensions.cs

@ -49,7 +49,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.Text
var languages = new Dictionary<string, StringBuilder>(); var languages = new Dictionary<string, StringBuilder>();
try try
{ {
foreach (var value in data.Values) foreach (var (_, value) in data)
{ {
if (value != null) if (value != null)
{ {
@ -96,7 +96,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.Text
} }
else if (value is JsonObject obj) else if (value is JsonObject obj)
{ {
foreach (var item in obj.Values) foreach (var (_, item) in obj)
{ {
AppendJsonText(languages, language, item); AppendJsonText(languages, language, item);
} }

2
backend/src/Squidex/Areas/Api/Config/OpenApi/FixProcessor.cs

@ -17,7 +17,7 @@ namespace Squidex.Areas.Api.Config.OpenApi
public bool Process(OperationProcessorContext context) public bool Process(OperationProcessorContext context)
{ {
foreach (var parameter in context.Parameters.Values) foreach (var (_, parameter) in context.Parameters)
{ {
if (parameter.IsRequired && parameter.Schema != null && parameter.Schema.Type == JsonObjectType.String) if (parameter.IsRequired && parameter.Schema != null && parameter.Schema.Type == JsonObjectType.String)
{ {

Loading…
Cancel
Save