From 83904bb0e51351f31ac63e1641a5c8edd14e1185 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Tue, 16 Aug 2022 09:12:34 +0300 Subject: [PATCH] Return null for empty serializer list. --- .../SimpleStateCheckerSerializerExtensions.cs | 35 +++++++++++-------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/SimpleStateChecking/SimpleStateCheckerSerializerExtensions.cs b/framework/src/Volo.Abp.Core/Volo/Abp/SimpleStateChecking/SimpleStateCheckerSerializerExtensions.cs index c5fbb824b3..3c852fc901 100644 --- a/framework/src/Volo.Abp.Core/Volo/Abp/SimpleStateChecking/SimpleStateCheckerSerializerExtensions.cs +++ b/framework/src/Volo.Abp.Core/Volo/Abp/SimpleStateChecking/SimpleStateCheckerSerializerExtensions.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Text; using System.Text.Json.Nodes; namespace Volo.Abp.SimpleStateChecking; @@ -18,23 +17,25 @@ public static class SimpleStateCheckerSerializerExtensions case 0: return null; case 1: - return $"[{serializer.Serialize(stateCheckers.Single())}]"; + var serializedChecker = serializer.Serialize(stateCheckers.Single()); + return serializedChecker != null + ? $"[{serializedChecker}]" + : null; default: - var stringBuilder = new StringBuilder("["); + var serializedCheckers = new List(stateCheckers.Count); - for (var i = 0; i < stateCheckers.Count; i++) + foreach (var stateChecker in stateCheckers) { - if (i > 0) + var serialized = serializer.Serialize(stateChecker); + if (serialized != null) { - stringBuilder.Append(","); + serializedCheckers.Add(serialized); } - - stringBuilder.Append(serializer.Serialize(stateCheckers[i])); } - stringBuilder.Append("]"); - - return stringBuilder.ToString(); + return serializedCheckers.Any() + ? $"[{serializedCheckers.JoinAsString(",")}]" + : null; } } @@ -62,10 +63,16 @@ public static class SimpleStateCheckerSerializerExtensions throw new AbpException("JSON value is not an array of objects: " + value); } - return new[] { serializer.Deserialize(jsonObject) }; + var checker = serializer.Deserialize(jsonObject); + if (checker == null) + { + return Array.Empty>(); + } + + return new[] { checker }; } - var checkers = new ISimpleStateChecker[array.Count]; + var checkers = new List>(); for (var i = 0; i < array.Count; i++) { @@ -77,6 +84,6 @@ public static class SimpleStateCheckerSerializerExtensions checkers[i] = serializer.Deserialize(jsonObject); } - return checkers; + return checkers.Where(x => x != null).ToArray(); } } \ No newline at end of file