refactor(DTOExtensions): Nachrichten nullbar gemacht und aktualisiert, um Null-Nachrichten zu filtern, um den Localizer nullbar machen zu können und so die Localizer-Abhängigkeit zu vermeiden.

This commit is contained in:
Developer 02 2025-01-20 13:53:01 +01:00
parent a86989479f
commit c3dbc1ec54

View File

@ -9,28 +9,36 @@ namespace DigitalData.Core.DTO
public static class DTOExtensions public static class DTOExtensions
{ {
/// <summary> /// <summary>
/// Adds a single message to the result. /// Adds a single message to the result, if not null.
/// </summary> /// </summary>
/// <typeparam name="T">The type of the result.</typeparam> /// <typeparam name="T">The type of the result.</typeparam>
/// <param name="result">The result to add the message to.</param> /// <param name="result">The result to add the message to.</param>
/// <param name="message">The message to add.</param> /// <param name="message">The message to add.</param>
/// <returns>The updated result.</returns> /// <returns>The updated result.</returns>
public static T Message<T>(this T result, string message) where T : Result public static T Message<T>(this T result, string? message) where T : Result
{ {
if(message is not null)
result.Messages.Add(message); result.Messages.Add(message);
return result; return result;
} }
internal static IEnumerable<T> FilterNull<T>(this IEnumerable<T?> list)
{
foreach (var item in list)
if(item is not null)
yield return item;
}
/// <summary> /// <summary>
/// Adds multiple messages to the result. /// Adds multiple messages to the result, after removing nulls.
/// </summary> /// </summary>
/// <typeparam name="T">The type of the result.</typeparam> /// <typeparam name="T">The type of the result.</typeparam>
/// <param name="result">The result to add the messages to.</param> /// <param name="result">The result to add the messages to.</param>
/// <param name="messages">The messages to add.</param> /// <param name="messages">The messages to add.</param>
/// <returns>The updated result.</returns> /// <returns>The updated result.</returns>
public static T Message<T>(this T result, params string[] messages) where T : Result public static T Message<T>(this T result, params string?[] messages) where T : Result
{ {
result.Messages.AddRange(messages); result.Messages.AddRange(messages.FilterNull());
return result; return result;
} }
@ -41,9 +49,9 @@ namespace DigitalData.Core.DTO
/// <param name="result">The result to add the messages to.</param> /// <param name="result">The result to add the messages to.</param>
/// <param name="messages">The collection of messages to add.</param> /// <param name="messages">The collection of messages to add.</param>
/// <returns>The updated result.</returns> /// <returns>The updated result.</returns>
public static T Message<T>(this T result, IEnumerable<string> messages) where T : Result public static T Message<T>(this T result, IEnumerable<string?> messages) where T : Result
{ {
result.Messages.AddRange(messages); result.Messages.AddRange(messages.FilterNull());
return result; return result;
} }
@ -101,13 +109,13 @@ namespace DigitalData.Core.DTO
/// <param name="flag">The flag associated with the notice.</param> /// <param name="flag">The flag associated with the notice.</param>
/// <param name="messages">The messages to add to the notice.</param> /// <param name="messages">The messages to add to the notice.</param>
/// <returns>The updated result.</returns> /// <returns>The updated result.</returns>
public static T Notice<T>(this T result, LogLevel level, Enum flag, params string[] messages) where T : Result public static T Notice<T>(this T result, LogLevel level, Enum flag, params string?[] messages) where T : Result
{ {
result.Notices.Add(new Notice() result.Notices.Add(new Notice()
{ {
Flag = flag, Flag = flag,
Level = level, Level = level,
Messages = messages.ToList() Messages = messages.FilterNull().ToList()
}); });
return result; return result;
} }
@ -126,7 +134,7 @@ namespace DigitalData.Core.DTO
{ {
Flag = null, Flag = null,
Level = level, Level = level,
Messages = messages.ToList() Messages = messages.FilterNull().ToList()
}); });
return result; return result;
} }