public GlobalDiscoverySampleServer( IApplicationsDatabase database, ICertificateGroupProvider certificateProvider ) { m_database = database; m_certificateGroupProvider = certificateProvider; }
/// <summary> /// Initializes the node manager. /// </summary> public ApplicationsNodeManager( IServerInternal server, ApplicationConfiguration configuration, IApplicationsDatabase database, ICertificateGroupProvider certificateGroupProvider ) : base(server, configuration) { List <string> namespaceUris = new List <string> { "http://opcfoundation.org/UA/GDS/applications/", Opc.Ua.Gds.Namespaces.OpcUaGds }; NamespaceUris = namespaceUris; SystemContext.NodeIdFactory = this; // get the configuration for the node manager. m_configuration = configuration.ParseExtension <GlobalDiscoveryServerConfiguration>(); // use suitable defaults if no configuration exists. if (m_configuration == null) { m_configuration = new GlobalDiscoveryServerConfiguration(); } if (!String.IsNullOrEmpty(m_configuration.DefaultSubjectNameContext)) { if (m_configuration.DefaultSubjectNameContext[0] != ',') { m_configuration.DefaultSubjectNameContext = "," + m_configuration.DefaultSubjectNameContext; } } DefaultApplicationGroupId = ExpandedNodeId.ToNodeId(Opc.Ua.Gds.ObjectIds.Directory_CertificateGroups_DefaultApplicationGroup, Server.NamespaceUris); DefaultHttpsGroupId = ExpandedNodeId.ToNodeId(Opc.Ua.Gds.ObjectIds.Directory_CertificateGroups_DefaultHttpsGroup, Server.NamespaceUris); DefaultUserTokenGroupId = ExpandedNodeId.ToNodeId(Opc.Ua.Gds.ObjectIds.Directory_CertificateGroups_DefaultUserTokenGroup, Server.NamespaceUris); m_autoApprove = true; m_database = database; m_certificateGroupProvider = certificateGroupProvider; m_certificateGroups = new Dictionary <NodeId, CertificateGroup>(); try { var results = m_database.QueryServers(0, 5, null, null, null, null, out DateTime lastResetTime); Utils.Trace("QueryServers Returned: {0} records", results.Length); foreach (var result in results) { Utils.Trace("Server Found at {0}", result.DiscoveryUrl); } } catch (Exception e) { Utils.Trace(e, "Could not connect to the Database!"); var ie = e.InnerException; while (ie != null) { Utils.Trace(ie, ""); ie = ie.InnerException; } Utils.Trace("Initialize Database tables!"); m_database.Initialize(); Utils.Trace("Database Initialized!"); } Server.MessageContext.Factory.AddEncodeableTypes(typeof(Opc.Ua.Gds.ObjectIds).GetTypeInfo().Assembly); }