/// <summary> /// Creates collection of components /// </summary> /// <param name="consumer">Data consumer</param> /// <param name="list">List of objects</param> /// <param name="action">Additional acton</param> /// <param name="priority">Priority</param> /// <param name="reason">Reason</param> /// <returns>Collection of components</returns> protected void CreateDataConsumerCollection(IDataConsumer consumer, List <object> list, Action <object> action, int priority, string reason) { IList <object> ll = consumer.GetDependentObjects(); foreach (object o in ll) { if (o is INamedComponent) { action(o); if (!list.Contains(o)) { list.Add(o); } continue; } if (o is IAssociatedObject) { IAssociatedObject ao = o as IAssociatedObject; object ob = ao.Object; action(ob); if (ob is INamedComponent) { if (!list.Contains(ob)) { list.Add(ob); } continue; } } } }