Example #1
0
        private void Filter(ref DataBaseMetaData metaData, TagInfo tags, string filterExpression)
        {
            var tableList = new List <TableMetaData>();

            for (var i = 0; i < metaData.Tables.Length; i++)
            {
                var table = metaData.Tables[i];

                if (StringUtility.GlobMany(table.TableInfo.Name, filterExpression) == false)
                {
                    continue;
                }

                if ((table.TableInfo.DerivedTags & tags) != tags)
                {
                    continue;
                }

                var tableInfo = table.TableInfo;
                tableInfo.Columns = tableInfo.Columns.Where(item => (item.DerivedTags & tags) == tags).ToArray();
                table.TableInfo   = tableInfo;

                tableList.Add(table);
            }

            metaData.Tables = tableList.ToArray();
        }
Example #2
0
        private void Initialize(DataBaseMetaData metaData)
        {
            foreach (var item in metaData.TypeCategories)
            {
                if (item.Path == this.Root.Path)
                {
                    continue;
                }
                this.Categories.Prepare(item.Path);
            }

            foreach (var item in metaData.Types)
            {
                var typeInfo  = item.TypeInfo;
                var typeState = item.TypeState;
                var type      = this.Types.AddNew(Authentication.System, typeInfo.Name, typeInfo.CategoryPath);
                type.Initialize(typeInfo);
                type.SetTypeState(typeState);
            }

            foreach (var item in metaData.TypeCategories)
            {
                var category = this.Categories[item.Path];

                if (item.AccessInfo.IsPrivate == true && item.AccessInfo.IsInherited == false)
                {
                    category.SetAccessInfo(item.AccessInfo);
                }

                if (item.LockInfo.IsLocked == true && item.LockInfo.IsInherited == false)
                {
                    category.SetLockInfo(item.LockInfo);
                }
            }

            foreach (var item in metaData.Types)
            {
                var itemName = new ItemName(item.Path);
                var type     = this.Types[itemName.Name];

                if (item.AccessInfo.IsPrivate == true && item.AccessInfo.IsInherited == false)
                {
                    type.SetAccessInfo(item.AccessInfo);
                }

                if (item.LockInfo.IsLocked == true && item.LockInfo.IsInherited == false)
                {
                    type.SetLockInfo(item.LockInfo);
                }
            }
        }
Example #3
0
 public TypeContext(DataBase dataBase, DataBaseMetaData metaData)
 {
     this.dataBase = dataBase;
     this.Initialize(metaData);
 }
Example #4
0
        private void Initialize(DataBaseMetaData metaData)
        {
            foreach (var item in metaData.TableCategories)
            {
                if (item.Path == this.Root.Path)
                {
                    continue;
                }
                this.Categories.Prepare(item.Path);
            }

            foreach (var item in metaData.Tables)
            {
                var tableInfo  = item.TableInfo;
                var tableState = item.TableState;
                var table      = this.Tables.AddNew(Authentication.System, tableInfo.Name, tableInfo.CategoryPath);
                table.Initialize(tableInfo);
                table.SetTableState(tableState);
            }

            foreach (var item in metaData.Tables)
            {
                var tableInfo = item.TableInfo;
                if (tableInfo.TemplatedParent == string.Empty)
                {
                    continue;
                }
                var table = this.Tables[tableInfo.Name];
                table.TemplatedParent = this.Tables[tableInfo.TemplatedParent];
                if (table.TemplatedParent == null)
                {
                    throw new Exception();
                }
            }

            foreach (var item in metaData.TableCategories)
            {
                var category = this.Categories[item.Path];

                if (item.AccessInfo.IsPrivate == true && item.AccessInfo.IsInherited == false)
                {
                    category.SetAccessInfo(item.AccessInfo);
                }

                if (item.LockInfo.IsLocked == true && item.LockInfo.IsInherited == false)
                {
                    category.SetLockInfo(item.LockInfo);
                }
            }

            foreach (var item in metaData.Tables)
            {
                var itemName = new ItemName(item.Path);
                var table    = this.Tables[itemName.Name];

                if (item.AccessInfo.IsPrivate == true && item.AccessInfo.IsInherited == false)
                {
                    table.SetAccessInfo(item.AccessInfo);
                }

                if (item.LockInfo.IsLocked == true && item.LockInfo.IsInherited == false)
                {
                    table.SetLockInfo(item.LockInfo);
                }
            }
        }