//----------------------------------- public static CTableDefinitionSNMP FromDefinition( CEasyQuerySource laBase, IDefinition def, CEasyQuerySourceFolder folder ) { CTableDefinitionSNMP table = null; if (def.Type == DefinitionType.Table) { table = new CTableDefinitionSNMP(laBase); table.TableName = def.Name; table.OID = def.GetNumericalForm(); if (folder != null) { table.FolderId = folder.Id; } if (def.Children.Count() == 1) { CColumnDefinitionSimple colIndex = new CColumnDefinitionSimple("Index", typeof(string)); table.AddColumn(colIndex); IDefinition entry = def.Children.ElementAt(0); foreach (IDefinition col in entry.Children) { if (col.Type == DefinitionType.Column) { CColumnDefinitionSNMP newCol = new CColumnDefinitionSNMP(); newCol.ColumnName = col.Name; newCol.OID = col.GetNumericalForm(); newCol.DataType = typeof(string); table.AddColumn(newCol); } } } } return(table); }
//----------------------------------- public static CTableDefinitionSNMP FromDefinition( CEasyQuerySource laBase, IDefinition def, CEasyQuerySourceFolder folder ) { CTableDefinitionSNMP table = null; if (def.Type == DefinitionType.Table) { table = new CTableDefinitionSNMP(laBase); table.TableName = def.Name; table.OID = def.GetNumericalForm(); if (folder != null) { table.FolderId = folder.Id; } if (def.Children.Count() == 1) { CColumnDefinitionSimple colIndex = new CColumnDefinitionSimple("Index", typeof(string)); table.AddColumn(colIndex); IDefinition entry = def.Children.ElementAt(0); foreach (IDefinition col in entry.Children) { if (col.Type == DefinitionType.Column) { ObjectType objType = col.Entity as ObjectType; if (objType != null && objType.Access != MaxAccess.notAccessible) { CColumnDefinitionSNMP newCol = new CColumnDefinitionSNMP(); newCol.ColumnName = col.Name; newCol.Description = col.Description; newCol.OID = col.GetNumericalForm(); TextualConvention conv = objType.Syntax as TextualConvention; if (conv != null) { newCol.SnmpType = conv.Syntax as AbstractTypeAssignment; } else { newCol.SnmpType = objType.Syntax as AbstractTypeAssignment; } if (newCol.SnmpType == null) { newCol.DataType = typeof(string); newCol.IsReadOnly = true; } switch (objType.Access) { case MaxAccess.accessibleForNotify: case MaxAccess.readOnly: newCol.IsReadOnly = true; break; case MaxAccess.readWrite: case MaxAccess.readCreate: newCol.IsReadOnly = false; break; } table.AddColumn(newCol); } } } } } return(table); }