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);
- }
- }
- }
- }
|