public dynamic GetValue([CallerMemberName] string property = "UnspecifiedProperty")
        {
            if (CurrentEntity.Value == null)
            {
                return(null);
            }
            var prop = CurrentEntity.Value.GetType().GetProperty(property, BindingFlags.Public | BindingFlags.Instance);

            if (prop == null)
            {
                return(null);
            }
            return(ChangeTracking.ContainsKey(property)
                ? ChangeTracking[property]
                : prop.GetValue(CurrentEntity.Value));
        }
 public void SetValue(dynamic value, [CallerMemberName] string property = "UnspecifiedProperty")
 {
     if (CurrentEntity.Value.GetType().GetProperty(property, BindingFlags.Public | BindingFlags.SetProperty | BindingFlags.Instance) == null)
     {
         return;
     }
     if (!ChangeTracking.ContainsKey(property))
     {
         //HACK: doing this shit cuz jbcollection generating some error long after add no control to prevent error
         try
         {
             ChangeTracking.AddOrUpdate(property, value);
         }
         catch
         {
         }
     }
     else
     {
         ChangeTracking[property] = value;
     }
     this.RaisePropertyChanged(property);
 }
 public void SetValue(dynamic value, [CallerMemberName] string property = "UnspecifiedProperty")
 {
     if (State.Value.Entity.GetType().GetProperty(property, BindingFlags.Public | BindingFlags.SetProperty | BindingFlags.Instance) == null)
     {
         return;
     }
     if (!ChangeTracking.ContainsKey(property))
     {
         //Hack: fix this
         try
         {
             ChangeTracking.AddOrUpdate(property, value);
         }
         catch
         {
         }
     }
     else
     {
         ChangeTracking[property] = value;
     }
     this.RaisePropertyChanged(property);
 }
 protected bool GetPropertyIsChanged([CallerMemberName] string property = "UnspecifiedProperty")
 {
     return(ChangeTracking.ContainsKey(property));
 }