diff --git a/DigitalData.Core.DTO/DTOExtensions.cs b/DigitalData.Core.DTO/DTOExtensions.cs index 5d3cb11..342b612 100644 --- a/DigitalData.Core.DTO/DTOExtensions.cs +++ b/DigitalData.Core.DTO/DTOExtensions.cs @@ -5,22 +5,34 @@ namespace DigitalData.Core.DTO { public static class DTOExtensions { - public static T Message(this T result, string message) where T : Result + public static T Message(this T result, string message, int? index = null) where T : Result { - result.Messages.Add(message); - return result; + if(index is null) + result.Messages.Add(message); + else + result.Messages.Insert(index.Value, message); + + return result; } - public static T Message(this T result, params string[] messages) where T : Result + public static T Message(this T result, int? index = null, params string[] messages) where T : Result { - result.Messages.AddRange(messages); - return result; + if(index is null) + result.Messages.AddRange(messages); + else + result.Messages.InsertRange(index.Value, messages); + + return result; } - public static T Message(this T result, IEnumerable messages) where T : Result + public static T Message(this T result, IEnumerable messages, int? index = null) where T : Result { - result.Messages.AddRange(messages); - return result; + if(index is null) + result.Messages.AddRange(messages); + else + result.Messages.InsertRange(index.Value, messages); + + return result; } public static T Notice(this T result, Notice notice) where T : Result