Exemple #1
0
 private static IList GetList(this RelatedEntities related, string collection)
 {
     if (!_getters.TryGetValue(collection, out Func <RelatedEntities, IList> getter))
     {
         throw new ArgumentException($"The collection {collection} does not exist on {nameof(RelatedEntities)}.");
     }
     else
     {
         return(getter(related));
     }
 }
Exemple #2
0
        public static IEnumerable <EntityWithKey> GetEntities(this RelatedEntities relatedEntities, string collection)
        {
            var list = relatedEntities.GetList(collection);

            if (list != null)
            {
                foreach (var item in list)
                {
                    yield return(item as EntityWithKey);
                }
            }
        }
Exemple #3
0
        public static void AddEntity(this RelatedEntities relatedEntities, EntityWithKey entity)
        {
            if (entity == null)
            {
                return;
            }

            var type       = entity.GetType();
            var desc       = TypeDescriptor.Get(type);
            var collection = type.Name;

            var list = relatedEntities.GetList(collection);

            if (list == null)
            {
                list = desc.CreateList();
                relatedEntities.SetList(collection, list);
            }

            list.Add(entity);
        }
Exemple #4
0
        private static void SetList(this RelatedEntities related, string name, IList list)
        {
            var propInfo = typeof(RelatedEntities).GetProperty(name);

            propInfo.SetValue(related, list);
        }