| 12345678910111213141516171819202122232425262728293031323334353637383940 | using System;using System.Linq;namespace InABox.Core{        public interface IEnclosedEntity    {    }        public abstract class EnclosedEntity : BaseObject, IEnclosedEntity    {                private Func<Entity>? _linkedentity;                [DoNotSerialize]        protected Entity? LinkedEntity() => _linkedentity?.Invoke();        //[Obsolete("Please supply linked Entity")]        public EnclosedEntity()        {        }        public EnclosedEntity(Func<Entity>? entity)         {            _linkedentity = entity;        }                protected override void DoPropertyChanged(string name, object before, object after)        {            var le = LinkedEntity();            if (IsObserving() && le != null)            {                var link = LinkedProperties.Find(le, this).FirstOrDefault(x => x.Source.Equals(name));                if (link != null)                    link.Update(this, le);            }        }    }}
 |