nHydrate.Generator.Models.Table.GetTablesInheritedFromHierarchy C# (CSharp) Method

GetTablesInheritedFromHierarchy() public method

Get all the tables that are descendants of this table
public GetTablesInheritedFromHierarchy ( ) : IEnumerable
return IEnumerable
        public IEnumerable<Table> GetTablesInheritedFromHierarchy()
        {
            var retval = new List<Table>();
            retval.Add(this);
            var count = retval.Count;

            do
            {
                count = retval.Count;
                foreach (Table t in ((ModelRoot)this.Root).Database.Tables)
                {
                    var addedItems = new List<Table>();
                    foreach (var t2 in retval)
                    {
                        if (t.ParentTable == t2)
                        {
                            if (!retval.Contains(t))
                                addedItems.Add(t);
                        }
                    }
                    retval.AddRange(addedItems);
                }
            } while (count != retval.Count);

            //Remove this table
            retval.RemoveAt(0);
            return retval;
        }