diff options
author | vman <public@vaughnnugent.com> | 2022-11-18 15:55:22 -0500 |
---|---|---|
committer | vman <public@vaughnnugent.com> | 2022-11-18 15:55:22 -0500 |
commit | c9e17b57a5ecdeea81674de5a033a201e7802526 (patch) | |
tree | 15c331af950441351507bb716e07dbe45452cd13 /Emails.Transactional.Client/Exceptions/ValidationFailedException.cs | |
parent | 038d86a0381b39af94b66c9bdd3da1e31cd2d8f2 (diff) |
Initial commit
Diffstat (limited to 'Emails.Transactional.Client/Exceptions/ValidationFailedException.cs')
-rw-r--r-- | Emails.Transactional.Client/Exceptions/ValidationFailedException.cs | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/Emails.Transactional.Client/Exceptions/ValidationFailedException.cs b/Emails.Transactional.Client/Exceptions/ValidationFailedException.cs new file mode 100644 index 0000000..12bcc33 --- /dev/null +++ b/Emails.Transactional.Client/Exceptions/ValidationFailedException.cs @@ -0,0 +1,62 @@ +using System; +using System.Linq; +using System.Collections.Generic; +using System.Text; + +#nullable enable + +namespace Emails.Transactional.Client.Exceptions +{ + /// <summary> + /// Raised when server message validation failed + /// </summary> + public class ValidationFailedException : InvalidTransactionRequestException + { + ///<inheritdoc/> + public ValidationFailedException() + {} + ///<inheritdoc/> + public ValidationFailedException(string message) : base(message) + {} + ///<inheritdoc/> + public ValidationFailedException(string message, Exception innerException) : base(message, innerException) + {} + + /// <summary> + /// A collection of validaion error messages + /// </summary> + public ICollection<ValidationErrorMessage>? ValidationErrors { get; init; } + /// <summary> + /// + /// </summary> + /// <param name="result"></param> + public ValidationFailedException(TransactionResult result):base("Transaction data server validation failed") + { + this.ValidationErrors = result?.ValidationErrors; + } + + ///<inheritdoc/> + public override string Message + { + get + { + if(ValidationErrors == null) + { + return base.Message; + + } + StringBuilder sb = new(base.Message); + sb.AppendLine(); + + foreach(var kvp in ValidationErrors) + { + sb.Append("Validation error: "); + sb.Append(kvp.PropertyName); + sb.Append(' '); + sb.AppendLine(kvp.ErrorMessage); + } + return sb.ToString(); + } + } + } +} |