From 88002173a1155883d1fb46683a9a7ad1f521eb56 Mon Sep 17 00:00:00 2001 From: crupest Date: Fri, 30 Apr 2021 16:52:55 +0800 Subject: refactor: ... --- BackEnd/Timeline/Services/EntityException.cs | 31 ++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 BackEnd/Timeline/Services/EntityException.cs (limited to 'BackEnd/Timeline/Services/EntityException.cs') diff --git a/BackEnd/Timeline/Services/EntityException.cs b/BackEnd/Timeline/Services/EntityException.cs new file mode 100644 index 00000000..7a302e5a --- /dev/null +++ b/BackEnd/Timeline/Services/EntityException.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Timeline.Services +{ + [Serializable] + public class EntityException : Exception + { + public EntityException() { } + public EntityException(string? message) : base(message) { } + public EntityException(string? message, Exception? inner) : base(message, inner) { } + public EntityException(EntityType entityType, IDictionary constraints, string? message = null, Exception? inner = null) + : base(message, inner) + { + EntityType = entityType; + Constraints = constraints; + } + protected EntityException( + System.Runtime.Serialization.SerializationInfo info, + System.Runtime.Serialization.StreamingContext context) : base(info, context) { } + + public EntityType EntityType { get; } = EntityTypes.Default; + public IDictionary Constraints { get; } = new Dictionary(); + + public string GenerateConstraintString() + { + return string.Join(' ', Constraints.Select(c => $"[{c.Key} = {c.Value}]")); + } + } +} -- cgit v1.2.3