2 Commits

2 changed files with 24 additions and 10 deletions

View File

@@ -5,22 +5,34 @@ namespace DigitalData.Core.DTO
{ {
public static class DTOExtensions public static class DTOExtensions
{ {
public static T Message<T>(this T result, string message) where T : Result public static T Message<T>(this T result, string message, int? index = null) where T : Result
{ {
result.Messages.Add(message); if(index is null)
return result; result.Messages.Add(message);
else
result.Messages.Insert(index.Value, message);
return result;
} }
public static T Message<T>(this T result, params string[] messages) where T : Result public static T Message<T>(this T result, int? index = null, params string[] messages) where T : Result
{ {
result.Messages.AddRange(messages); if(index is null)
return result; result.Messages.AddRange(messages);
else
result.Messages.InsertRange(index.Value, messages);
return result;
} }
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, int? index = null) where T : Result
{ {
result.Messages.AddRange(messages); if(index is null)
return result; result.Messages.AddRange(messages);
else
result.Messages.InsertRange(index.Value, messages);
return result;
} }
public static T Notice<T>(this T result, Notice notice) where T : Result public static T Notice<T>(this T result, Notice notice) where T : Result

View File

@@ -6,5 +6,7 @@ namespace DigitalData.Core.DTO
{ {
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public required T Data { get; set; } public required T Data { get; set; }
}
public DataResult<I> ToFail<I>() => Fail<I>().Message(Messages).Notice(Notices);
}
} }