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;
}