Compare commits
2 Commits
a86989479f
...
a7fb97de4a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a7fb97de4a | ||
|
|
c3dbc1ec54 |
@@ -9,28 +9,36 @@ namespace DigitalData.Core.DTO
|
||||
public static class DTOExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// Adds a single message to the result.
|
||||
/// Adds a single message to the result, if not null.
|
||||
/// </summary>
|
||||
/// <typeparam name="T">The type of the result.</typeparam>
|
||||
/// <param name="result">The result to add the message to.</param>
|
||||
/// <param name="message">The message to add.</param>
|
||||
/// <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
|
||||
{
|
||||
result.Messages.Add(message);
|
||||
if(message is not null)
|
||||
result.Messages.Add(message);
|
||||
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>
|
||||
/// Adds multiple messages to the result.
|
||||
/// Adds multiple messages to the result, after removing nulls.
|
||||
/// </summary>
|
||||
/// <typeparam name="T">The type of the result.</typeparam>
|
||||
/// <param name="result">The result to add the messages to.</param>
|
||||
/// <param name="messages">The messages to add.</param>
|
||||
/// <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;
|
||||
}
|
||||
|
||||
@@ -41,9 +49,9 @@ namespace DigitalData.Core.DTO
|
||||
/// <param name="result">The result to add the messages to.</param>
|
||||
/// <param name="messages">The collection of messages to add.</param>
|
||||
/// <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;
|
||||
}
|
||||
|
||||
@@ -101,13 +109,13 @@ namespace DigitalData.Core.DTO
|
||||
/// <param name="flag">The flag associated with the notice.</param>
|
||||
/// <param name="messages">The messages to add to the notice.</param>
|
||||
/// <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()
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<Description>This package provides Data Transfer Object (DTO) implementations and related utilities. It includes generic result handling, DTO extension methods, cookie consent settings management, and AutoMapper integration for robust object mapping, all adhering to Clean Architecture principles to ensure separation of concerns and maintainability.</Description>
|
||||
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
|
||||
<PackageId>DigitalData.Core.DTO</PackageId>
|
||||
<Version>2.0.0.0</Version>
|
||||
<Version>2.0.1</Version>
|
||||
<Authors>Digital Data GmbH</Authors>
|
||||
<Company>Digital Data GmbH</Company>
|
||||
<Product>DigitalData.Core.DTO</Product>
|
||||
@@ -15,6 +15,8 @@
|
||||
<PackageIcon>core_icon.png</PackageIcon>
|
||||
<RepositoryUrl>http://git.dd:3000/AppStd/WebCoreModules.git</RepositoryUrl>
|
||||
<PackageTags>digital data core dto clean architecture result pattern</PackageTags>
|
||||
<AssemblyVersion>2.0.1</AssemblyVersion>
|
||||
<FileVersion>2.0.1</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
Reference in New Issue
Block a user