| 123456789101112131415161718192021222324252627 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.Linq;
 
- using System.Linq.Expressions;
 
- namespace InABox.Core
 
- {
 
-     public static class LinkedProperties
 
-     {
 
-         private static readonly List<ILinkedProperty> _LinkedProperties = new List<ILinkedProperty>();
 
-         public static void Register<TLinkedEntity, TEntityLink, TType>(Expression<Func<TLinkedEntity,TEntityLink>> path, Expression<Func<TEntityLink, TType>> source,
 
-             Expression<Func<TLinkedEntity, TType>> target)
 
-         {
 
-             var map = new LinkedProperty<TLinkedEntity, TEntityLink, TType>(path, source, target);
 
-             if (!_LinkedProperties.Any(x => x.Equals(map)))
 
-                 _LinkedProperties.Add(map);
 
-         }
 
-         public static IEnumerable<ILinkedProperty> Find(object parent, object path)
 
-         {
 
-             return _LinkedProperties.Where(x => (x.Type == parent.GetType()) && (CoreUtils.GetPropertyValue(parent,x.Path) == path));
 
-         }
 
-         
 
-     }
 
- }
 
 
  |