}//listBalanceConfigurations() private static CswNbtObjClassBalanceConfiguration _findConfigurationWithName( CswNbtResources NbtResources, string Name ) { CswNbtObjClassBalanceConfiguration Ret = null; CswNbtMetaDataObjectClass BalanceConfigurationOC = NbtResources.MetaData.getObjectClass( CswEnumNbtObjectClass.BalanceConfigurationClass ); CswNbtMetaDataObjectClassProp ConfigNameOCP = BalanceConfigurationOC.getObjectClassProp( CswNbtObjClassBalanceConfiguration.PropertyName.Name ); CswNbtView ExistingConfigsView = new CswNbtView( NbtResources ); ExistingConfigsView.ViewName = "Balance Configurations"; CswNbtViewRelationship ConfigNameRel = ExistingConfigsView.AddViewRelationship( BalanceConfigurationOC, false ); ExistingConfigsView.AddViewPropertyAndFilter( ConfigNameRel, ConfigNameOCP, Value: Name, FilterMode: CswEnumNbtFilterMode.Equals ); ICswNbtTree ExistingConfigsTree = NbtResources.Trees.getTreeFromView( ExistingConfigsView, false, true, true ); if( ExistingConfigsTree.getChildNodeCount() > 0 ) { //this configuration exists, grab a reference to it. ExistingConfigsTree.goToNthChild( 0 ); Ret = ExistingConfigsTree.getCurrentNode(); } return Ret; }
}//listConnectedBalances( ICswResources CswResources, CswNbtBalanceReturn Return, object Request ) public static void listBalanceConfigurations( ICswResources CswResources, CswNbtBalanceReturn Return, object Request ) { CswNbtResources NbtResources = (CswNbtResources) CswResources; Return.Data.ConfigurationList = new Collection<BalanceConfiguration>(); CswNbtMetaDataObjectClass BalanceConfigurationOC = NbtResources.MetaData.getObjectClass( CswEnumNbtObjectClass.BalanceConfigurationClass ); if( null != BalanceConfigurationOC ) { CswNbtView ExistingConfigurationsView = BalanceConfigurationOC.CreateDefaultView( true ); ICswNbtTree ConfigTree = NbtResources.Trees.getTreeFromView( ExistingConfigurationsView, true, false, false ); int ConfigCount = ConfigTree.getChildNodeCount(); if( ConfigCount > 0 ) { ConfigTree.goToRoot(); for( int i = 0; i < ConfigCount; i++ ) { ConfigTree.goToNthChild( i ); CswNbtObjClassBalanceConfiguration Configuration = ConfigTree.getCurrentNode(); Return.Data.ConfigurationList.Add( new BalanceConfiguration { Name = Configuration.Name.Text, RequestFormat = Configuration.RequestFormat.Text, ResponseFormat = Configuration.ResponseFormat.Text, BaudRate = (int) Configuration.BaudRate.Value, ParityBit = Configuration.ParityBit.Text, DataBits = (int) Configuration.DataBits.Value, StopBits = Configuration.StopBits.Text, Handshake = Configuration.Handshake.Text, } ); ConfigTree.goToParentNode(); } //for ( int i = 0; i < BalanceCount; i++ ) } //if( BalanceCount > 0 ) } //if ( null != BalanceOC ) }//listBalanceConfigurations()
public static void registerBalanceConfiguration( ICswResources CswResources, CswNbtBalanceReturn Return, BalanceConfiguration Request ) { CswNbtResources NbtResources = (CswNbtResources) CswResources; CswNbtMetaDataObjectClass BalanceConfigurationOC = NbtResources.MetaData.getObjectClass( CswEnumNbtObjectClass.BalanceConfigurationClass ); if( null != BalanceConfigurationOC ) { Return.Data.ConfigurationList = new Collection<BalanceConfiguration>(); CswNbtObjClassBalanceConfiguration BalanceConfiguration = _findConfigurationWithName( NbtResources, Request.Name ); Action<CswNbtNode> AfterBalanceConfig = delegate( CswNbtNode NewNode ) { CswNbtObjClassBalanceConfiguration thisBalanceConfig = NewNode; thisBalanceConfig.Name.Text = Request.Name; thisBalanceConfig.RequestFormat.Text = Request.RequestFormat; thisBalanceConfig.ResponseFormat.Text = Request.ResponseFormat; thisBalanceConfig.BaudRate.Value = Request.BaudRate; thisBalanceConfig.ParityBit.Text = Request.ParityBit; thisBalanceConfig.DataBits.Value = Request.DataBits; thisBalanceConfig.StopBits.Text = Request.StopBits; thisBalanceConfig.Handshake.Text = Request.Handshake; }; if( null == BalanceConfiguration ) { //there is no configuration with this name yet. Make a new one. CswNbtMetaDataNodeType ConfigNT = BalanceConfigurationOC.FirstNodeType; BalanceConfiguration = NbtResources.Nodes.makeNodeFromNodeTypeId( ConfigNT.NodeTypeId, AfterBalanceConfig ); } else { AfterBalanceConfig( BalanceConfiguration.Node ); BalanceConfiguration.postChanges( false ); } Return.Data.ConfigurationList.Add( Request ); }//if ( null != BalanceConfigurationOC ) } // registerBalanceConfiguration()