//----------------------------------- private static void FillListeTables( CEasyQuerySource laBase, IDefinition definition, List <ITableDefinition> lstToFill, CEasyQuerySourceFolder folderRacine) { foreach (IDefinition children in definition.Children) { if (children.Type == DefinitionType.Table) { CTableDefinitionSNMP table = FromDefinition(laBase, children, folderRacine); if (table != null) { lstToFill.Add(table); laBase.AddTable(table); } } else if (children.Type == DefinitionType.OidValueAssignment || children.Type == DefinitionType.Scalar) { CEasyQuerySourceFolder folder = folderRacine.GetSubFolderWithCreate(children.Name); if (folder != null && children.GetNumericalForm().Length > 0) { folder.SetExtendedProperty(c_strExtendedPropertyOID, ObjectIdentifier.Convert(children.GetNumericalForm())); } if (children.Type == DefinitionType.Scalar) { folder.SetExtendedProperty(c_strExtendedPropertyValue, new CValeurExtendedProprieteFolderSnmpScalar(ObjectIdentifier.Convert(children.GetNumericalForm()))); folder.ImageKey = CValeurExtendedProprieteFolderSnmpScalar.c_strImageScalar; } FillListeTables(laBase, children, lstToFill, folder); } } }
//----------------------------------- private static void FillListeTables( CEasyQuerySource laBase, IDefinition definition, List <ITableDefinition> lstToFill, CEasyQuerySourceFolder folderRacine) { CTableDefinitionSnmpOfScalar tableScalars = null; if (definition.Entity != null) { tableScalars = new CTableDefinitionSnmpOfScalar(); tableScalars.OIDRacine = definition.GetNumericalForm(); tableScalars.TableName = folderRacine.Name + "_Scalars"; tableScalars.FolderId = folderRacine.Id; } foreach (IDefinition children in definition.Children) { if (children.Type == DefinitionType.Table) { CTableDefinitionSNMP table = FromDefinition(laBase, children, folderRacine); if (table != null) { lstToFill.Add(table); laBase.AddTableUniquementPourObjetConnexion(table); } } else if (children.Type == DefinitionType.OidValueAssignment) { CEasyQuerySourceFolder folder = folderRacine.GetSubFolderWithCreate(children.Name); FillListeTables(laBase, children, lstToFill, folder); } else if (children.Type == DefinitionType.Scalar) { if (children.Type == DefinitionType.Scalar && tableScalars != null) { CColumnDefinitionSNMP colSnmp = new CColumnDefinitionSNMP(); colSnmp.ColumnName = children.Name; colSnmp.OID = children.GetNumericalForm(); Type tp = typeof(string); ObjectType objType = children.Entity as ObjectType; if (objType != null) { TextualConvention conv = objType.Syntax as TextualConvention; if (conv != null) { tp = ((AbstractTypeAssignment)conv.Syntax).GetTypeDotNet(); } else { AbstractTypeAssignment abs = objType.Syntax as AbstractTypeAssignment; if (abs != null) { tp = abs.GetTypeDotNet(); } } } switch (objType.Access) { case MaxAccess.accessibleForNotify: case MaxAccess.readOnly: colSnmp.IsReadOnly = true; break; case MaxAccess.readWrite: case MaxAccess.readCreate: colSnmp.IsReadOnly = false; break; } colSnmp.DataType = tp; tableScalars.AddColumn(colSnmp); } } } if (tableScalars != null && tableScalars.Columns.Count() > 0) { laBase.AddTableUniquementPourObjetConnexion(tableScalars); tableScalars.Base = laBase; } }