From c3dbc1ec54752e8d9bf69cbe1c5a674efcc4a626 Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Mon, 20 Jan 2025 13:53:01 +0100 Subject: [PATCH] =?UTF-8?q?refactor(DTOExtensions):=20Nachrichten=20nullba?= =?UTF-8?q?r=20gemacht=20und=20aktualisiert,=20um=20Null-Nachrichten=20zu?= =?UTF-8?q?=20filtern,=20um=20den=20Localizer=20nullbar=20machen=20zu=20k?= =?UTF-8?q?=C3=B6nnen=20und=20so=20die=20Localizer-Abh=C3=A4ngigkeit=20zu?= =?UTF-8?q?=20vermeiden.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DigitalData.Core.DTO/DTOExtensions.cs | 30 +++++++++++++++++---------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/DigitalData.Core.DTO/DTOExtensions.cs b/DigitalData.Core.DTO/DTOExtensions.cs index c5bee5c..827e89e 100644 --- a/DigitalData.Core.DTO/DTOExtensions.cs +++ b/DigitalData.Core.DTO/DTOExtensions.cs @@ -9,28 +9,36 @@ namespace DigitalData.Core.DTO public static class DTOExtensions { /// - /// Adds a single message to the result. + /// Adds a single message to the result, if not null. /// /// The type of the result. /// The result to add the message to. /// The message to add. /// The updated result. - public static T Message(this T result, string message) where T : Result + public static T Message(this T result, string? message) where T : Result { - result.Messages.Add(message); + if(message is not null) + result.Messages.Add(message); return result; } + internal static IEnumerable FilterNull(this IEnumerable list) + { + foreach (var item in list) + if(item is not null) + yield return item; + } + /// - /// Adds multiple messages to the result. + /// Adds multiple messages to the result, after removing nulls. /// /// The type of the result. /// The result to add the messages to. /// The messages to add. /// The updated result. - public static T Message(this T result, params string[] messages) where T : Result + public static T Message(this T result, params string?[] messages) where T : Result { - result.Messages.AddRange(messages); + result.Messages.AddRange(messages.FilterNull()); return result; } @@ -41,9 +49,9 @@ namespace DigitalData.Core.DTO /// The result to add the messages to. /// The collection of messages to add. /// The updated result. - public static T Message(this T result, IEnumerable messages) where T : Result + public static T Message(this T result, IEnumerable messages) where T : Result { - result.Messages.AddRange(messages); + result.Messages.AddRange(messages.FilterNull()); return result; } @@ -101,13 +109,13 @@ namespace DigitalData.Core.DTO /// The flag associated with the notice. /// The messages to add to the notice. /// The updated result. - public static T Notice(this T result, LogLevel level, Enum flag, params string[] messages) where T : Result + public static T Notice(this T result, LogLevel level, Enum flag, params string?[] messages) where T : Result { result.Notices.Add(new Notice() { Flag = flag, Level = level, - Messages = messages.ToList() + Messages = messages.FilterNull().ToList() }); return result; } @@ -126,7 +134,7 @@ namespace DigitalData.Core.DTO { Flag = null, Level = level, - Messages = messages.ToList() + Messages = messages.FilterNull().ToList() }); return result; }