Browse Source

Added Entity.GetOriginalValue(), passing in a specified default value

frogsoftware 1 year ago
parent
commit
e8f3c7de9b
1 changed files with 8 additions and 0 deletions
  1. 8 0
      InABox.Core/BaseObject.cs

+ 8 - 0
InABox.Core/BaseObject.cs

@@ -570,6 +570,14 @@ namespace InABox.Core
                 ? (TType)CoreUtils.ChangeType(sender.OriginalValues[prop.Name], typeof(TType))
                 : default;
         }
+        
+        public static TType GetOriginalValue<T, TType>(this T sender, Expression<Func<T, TType>> property, TType defaultValue) where T : BaseObject
+        {
+            var prop = ((MemberExpression)property.Body).Member as PropertyInfo;
+            return prop != null && sender.OriginalValues != null && sender.OriginalValues.ContainsKey(prop.Name)
+                ? (TType)CoreUtils.ChangeType(sender.OriginalValues[prop.Name], typeof(TType))
+                : defaultValue;
+        }
 
         public static void SetOriginalValue<T, TType>(this T sender, Expression<Func<T, TType>> property, TType value) where T : BaseObject
         {