public void Execute(ApplicationInstructions instructions, ApplicationConfiguration configuration)
        {
            Validate.ExecuteAlias(instructions.ExecuteAlias);

            var isTimedMode = instructions.TimedMode || configuration.IsTimedMode;
            var group = TaskCollection.SelectTaskGroup(instructions.ExecuteAlias.Alias);

            Validate.TaskGroup(group);

            try
            {
                PrintStartTime(isTimedMode);

                if (instructions.ParallelMode)
                {
                    ExecuteASync(group, instructions, configuration);
                }
                else
                {
                    ExecuteSync(group, instructions, configuration);
                }
            }
            finally
            {
                PrintEndTime(isTimedMode);
            }
        }
Example #2
0
 /// <summary>
 /// This constructor loads the configuration.
 /// </summary>
 /// <remarks> It loads Client configuration, test configuration and 
 /// initializes contexts for vendor namespaces. </remarks>
 public TestClient(ApplicationConfiguration configuration)
 {
     m_configuration = configuration;
     LoadTestConfiguration(null);
     m_messageContext = Compare.MessageContext = m_configuration.CreateMessageContext();
     TestUtils.InitializeContexts(m_messageContext);
 }
        /// <summary>
        /// Displays the dialog.
        /// </summary>
        public ConfiguredEndpoint ShowDialog(ApplicationConfiguration configuration, bool createNew)
        {
            m_configuration = configuration;
            m_endpoint = null;

            // create a default collection if none provided.
            if (createNew)
            {
                ApplicationDescription server = new DiscoveredServerListDlg().ShowDialog(null, m_configuration);

                if (server != null)
                {
                    return new ConfiguredEndpoint(server, EndpointConfiguration.Create(configuration));
                }

                return null;
            }
            
            ServersCTRL.Initialize(null, configuration);
            
            OkBTN.IsEnabled = false;

            Popup myPopup = new Popup();
            myPopup.Child = this;
            myPopup.IsOpen = true;

            return m_endpoint;
        }
Example #4
0
        /// <summary>
        /// Uses the command line to override the UA TCP implementation specified in the configuration.
        /// </summary>
        /// <param name="configuration">The configuration instance that stores the configurable information for a UA application.
        /// </param>
        public static void OverrideUaTcpImplementation(ApplicationConfiguration configuration)
        {
            // check if UA TCP configuration included.
            TransportConfiguration transport = null;

            for (int ii = 0; ii < configuration.TransportConfigurations.Count; ii++)
            {
                if (configuration.TransportConfigurations[ii].UriScheme == Utils.UriSchemeOpcTcp)
                {
                    transport = configuration.TransportConfigurations[ii];
                    break;
                }
            }

            // check if UA TCP implementation explicitly specified.
            if (transport != null)
            {
                string[] args = Environment.GetCommandLineArgs();

                if (args != null && args.Length > 1)
                {
                    if (String.Compare(args[1], "-uaTcpAnsiC", StringComparison.InvariantCultureIgnoreCase) == 0)
                    {
                        transport.TypeName = Utils.UaTcpBindingNativeStack;
                    }
                    else if (String.Compare(args[1], "-uaTcpDotNet", StringComparison.InvariantCultureIgnoreCase) == 0)
                    {
                        transport.TypeName = Utils.UaTcpBindingDefault;
                    }
                }
            }
        }
Example #5
0
 /// <summary>
 /// Creates a form which uses the specified client configuration.
 /// </summary>
 /// <param name="configuration">The configuration to use.</param>
 public MainForm(ApplicationConfiguration configuration)
 {
     InitializeComponent();
     ConnectServerCTRL.Configuration = m_configuration = configuration;
     ConnectServerCTRL.ServerUrl = "opc.tcp://localhost:62541/Quickstarts/ReferenceServer";
     this.Text = m_configuration.ApplicationName;
 }
        public void ShouldMapAllConfigFields()
        {
            var console = new string[0];
            var config = new ApplicationConfiguration
            {
                IsInGroupMode = true,
                IsTimedMode = true,
                IsVerbodeMode = true
            };
            config.DefaultArguments.ExecuteAlias = "alias";
            config.DefaultArguments.MethodArguments = new[] { "config" };
            config.DefaultArguments.ConstructorArguments = new[] { "config" };

            builder = new InstructionBuilder(console, config);
            var instructions = builder.Build();

            Assert.That(instructions.ExecuteAlias.Alias, Is.EqualTo("alias"));
            Assert.That(instructions.Instructions.ContainsKey(InstructionType.DisplayHelp), Is.False);
            Assert.That(instructions.Instructions.ContainsKey(InstructionType.DisplayList), Is.False);
            Assert.That(instructions.Instructions[InstructionType.Constructor].Arguments, Is.EqualTo(new[] { "config" }));
            Assert.That(instructions.Instructions[InstructionType.Method].Arguments, Is.EqualTo(new[] { "config" }));
            Assert.That(instructions.Instructions[InstructionType.Group], Is.Not.Null);
            Assert.That(instructions.Instructions[InstructionType.Timed], Is.Not.Null);
            Assert.That(instructions.Instructions[InstructionType.Verbose], Is.Not.Null);
        }
Example #7
0
        /// <summary>
        /// This method loads the configuration for the test server.
        /// </summary>
        protected override void OnServerStarting(ApplicationConfiguration configuration)
        {
            base.OnServerStarting(configuration);

            LoadTestConfiguration(null);
            TestUtils.InitializeContexts(base.MessageContext);
        }
        protected void btnSave_Click(object sender, EventArgs e)
        {
            lblError.Text = string.Empty;
            lblSave.Text = string.Empty;
            lblMessage.Text = string.Empty;
            lblMessage.Visible = false;
            lblError.Visible = false;
            lblSave.Visible = false;
            try {
                using (TransactionScope scope = new TransactionScope()) {
                    ApplicationConfigurationManager.UpdateAppConfigStatus();
                    ApplicationConfiguration objAppConfig = new ApplicationConfiguration();
                    objAppConfig.PrimaryProducerCommissionPercent = Convert.ToDecimal(txtPrimeryProducer.Text);
                    objAppConfig.SecondaryProducerCommissionPercent = Convert.ToDecimal(txtSecondaryProducer.Text);

                    objAppConfig.EmailNotificationSite1 = txtEmailSite1.Text.Trim();
                    objAppConfig.EmailNotificationSite2 = txtEmailSite2.Text.Trim();
                    objAppConfig.EmailNotificationSite3 = txtEmailSite3.Text.Trim();
                    objAppConfig.Status = 1;
                    ApplicationConfigurationManager.Save(objAppConfig);
                    fillRecord();
                    lblSave.Text = "Record Saved.";
                    lblSave.Visible = true;
                    scope.Complete();
                }
            }
            catch (Exception ex) {
                lblError.Text = "Record Not Saved.";
                lblError.Visible = true;
            }
        }
        /// <summary>
        /// Initializes the node manager.
        /// </summary>
        public TestDataNodeManager(Opc.Ua.Server.IServerInternal server, ApplicationConfiguration configuration)
        :
            base(server, configuration)
        {
            // update the namespaces.
            List<string> namespaceUris = new List<string>();

            namespaceUris.Add(Namespaces.TestData);
            namespaceUris.Add(Namespaces.TestData + "/Instance");

            NamespaceUris = namespaceUris;

            // get the configuration for the node manager.
            m_configuration = configuration.ParseExtension<TestDataNodeManagerConfiguration>();

            // use suitable defaults if no configuration exists.
            if (m_configuration == null)
            {
                m_configuration = new TestDataNodeManagerConfiguration();
            }

            m_lastUsedId = m_configuration.NextUnusedId-1;

            // create the object used to access the test system.
            m_system = new TestDataSystem(this, server.NamespaceUris, server.ServerUris);

            // update the default context.
            SystemContext.SystemHandle = m_system;
        }
        /// <summary>
        /// Creates a form which displays the status for a UA server.
        /// </summary>
        /// <param name="server">The server displayed in the form.</param>
        /// <param name="configuration">The configuration used to initialize the server.</param>
        public void Initialize(StandardServer server, ApplicationConfiguration configuration)
        {
            m_server = server;
            m_configuration = configuration;

            m_dispatcherTimer = new DispatcherTimer();
            m_dispatcherTimer.Tick += UpdateTimerCTRL_Tick;
            m_dispatcherTimer.Interval = new TimeSpan(0, 0, 5); // tick every 5 seconds
            m_dispatcherTimer.Start();

            // add the urls to the drop down.
            UrlCB.Items.Clear();

            foreach (EndpointDescription endpoint in m_server.GetEndpoints())
            {
                if (!UrlCB.Items.Contains(endpoint.EndpointUrl))
                {
                    UrlCB.Items.Add(endpoint.EndpointUrl);
                }
            }

            if (UrlCB.Items.Count > 0)
            {
                UrlCB.SelectedIndex = 0;
            }
        }
Example #11
0
        public PublisherForm(
            ServiceMessageContext context,
            ApplicationInstance application,
            PublisherForm masterForm,
            ApplicationConfiguration configuration)
        {
            InitializeComponent();
            this.Icon = ClientUtils.GetAppIcon();

            m_masterForm = masterForm;
            m_context = context;
            m_application = application;
            m_server = application.Server as Opc.Ua.Server.StandardServer;

            if (m_masterForm == null)
            {
                m_forms = new List<PublisherForm>();
            }

            SessionsCTRL.Configuration  = m_configuration = configuration;
            SessionsCTRL.MessageContext = context;

            // get list of cached endpoints.
            m_endpoints = m_configuration.LoadCachedEndpoints(true);
            m_endpoints.DiscoveryUrls = configuration.ClientConfiguration.WellKnownDiscoveryUrls;
            EndpointSelectorCTRL.Initialize(m_endpoints, m_configuration);

            // initialize control state.
            Disconnect();
            //lth: initial MassTransit Publisher
            m_massTransitPublisher = new MassTransitPublisher();

            this.NotificationsCTRL.ItemsAdded += NotificationsCTRL_ItemsAdded;
        }
        /// <summary>
        /// Creates a new transport channel that supports the IRegistrationChannel service contract.
        /// </summary>
        /// <param name="configuration">The application configuration.</param>
        /// <param name="description">The description for the endpoint.</param>
        /// <param name="endpointConfiguration">The configuration to use with the endpoint.</param>
        /// <param name="clientCertificate">The client certificate.</param>
        /// <param name="messageContext">The message context to use when serializing the messages.</param>
        /// <returns></returns>
        public static ITransportChannel Create(
            ApplicationConfiguration configuration,
            EndpointDescription description,
            EndpointConfiguration endpointConfiguration,
            X509Certificate2 clientCertificate,
            ServiceMessageContext messageContext)
        {
            // create a UA binary channel.
            ITransportChannel channel = CreateUaBinaryChannel(
                configuration,
                description,
                endpointConfiguration,
                clientCertificate,
                messageContext);

            // create a WCF XML channel.
            if (channel == null)
            {
                Uri endpointUrl = new Uri(description.EndpointUrl);
                channel = new RegistrationChannel();

                TransportChannelSettings settings = new TransportChannelSettings();
                settings.Configuration = endpointConfiguration;
                settings.Description = description;
                settings.ClientCertificate = clientCertificate;
                channel.Initialize(endpointUrl, settings);
            }

            return channel;
        }
        /// <summary>
        /// Displays the dialog.
        /// </summary>
        public ConfiguredEndpoint ShowDialog(ApplicationConfiguration configuration, bool createNew)
        {
            m_configuration = configuration;
            m_endpoint = null;

            // create a default collection if none provided.
            if (createNew)
            {
                ApplicationDescription server = new DiscoveredServerListDlg().ShowDialog(null, m_configuration);

                if (server != null)
                {
                    return new ConfiguredEndpoint(server, EndpointConfiguration.Create(configuration));
                }

                return null;
            }
            
            ServersCTRL.Initialize(null, configuration);
            
            OkBTN.Enabled = false;

            if (ShowDialog() != DialogResult.OK)
            {
                return null;
            }
  
            return m_endpoint;
        }
Example #14
0
        public OnlineSettingsForm(ApplicationConfiguration applicationConfiguration)
        {
            InitializeComponent();

            this.applicationConfiguration = applicationConfiguration;
            workingApplicationConfiguration = ObjectCopier.CloneObject<ApplicationConfiguration, ApplicationConfiguration>(applicationConfiguration);
        }
        /// <summary>
        /// Initializes the manager with its configuration.
        /// </summary>
        public SubscriptionManager(
            IServerInternal          server,
            ApplicationConfiguration configuration)
        {
            if (server == null)        throw new ArgumentNullException("server");
            if (configuration == null) throw new ArgumentNullException("configuration");
            
            m_server = server;
            
            m_minPublishingInterval      = configuration.ServerConfiguration.MinPublishingInterval;
            m_maxPublishingInterval      = configuration.ServerConfiguration.MaxPublishingInterval;
            m_publishingResolution       = configuration.ServerConfiguration.PublishingResolution;
            m_maxSubscriptionLifetime    = (uint)configuration.ServerConfiguration.MaxSubscriptionLifetime;
            m_minSubscriptionLifetime    = (uint)configuration.ServerConfiguration.MinSubscriptionLifetime;
            m_maxMessageCount            = (uint)configuration.ServerConfiguration.MaxMessageQueueSize;
            m_maxNotificationsPerPublish = (uint)configuration.ServerConfiguration.MaxNotificationsPerPublish;
            m_maxPublishRequestCount     = configuration.ServerConfiguration.MaxPublishRequestCount;
            m_maxSubscriptionCount       = configuration.ServerConfiguration.MaxSubscriptionCount;

            m_subscriptions           = new Dictionary<uint,Subscription>();
            m_publishQueues           = new Dictionary<NodeId,SessionPublishQueue>();
            m_statusMessages          = new Dictionary<NodeId, Queue<StatusMessage>>();
            
            // create a event to signal shutdown.
            m_shutdownEvent = new ManualResetEvent(true);
        }
Example #16
0
        public static string Replace(ApplicationConfiguration.ReplaceInfo[] replaceInfos, string text)
        {
            foreach (ApplicationConfiguration.ReplaceInfo replaceInfo in replaceInfos)
                text = text.Replace(replaceInfo.from, replaceInfo.to);

            return text;
        }
Example #17
0
        /// <summary>
        /// Creates the node managers for the server.
        /// </summary>
        /// <remarks>
        /// This method allows the sub-class create any additional node managers which it uses. The SDK
        /// always creates a CoreNodeManager which handles the built-in nodes defined by the specification.
        /// Any additional NodeManagers are expected to handle application specific nodes.
        /// </remarks>
        protected override MasterNodeManager CreateMasterNodeManager(IServerInternal server, ApplicationConfiguration configuration)
        {
            Utils.Trace("Creating the Node Managers.");

            List<INodeManager> nodeManagers = new List<INodeManager>();

            // create the custom node managers.
            nodeManagers.Add(new TutorialNodeManager(server, configuration));

            #region Task #C4 - Add Support for COM Wrapper
            // manually configure the COM server to prevent unapproved wrappers.
            ComDaClientConfiguration wrapperConfig = new ComDaClientConfiguration();

            wrapperConfig.ServerName = "COM";
            wrapperConfig.ServerUrl = "opc.com://localhost/OPCSample.OpcDaServer";
            wrapperConfig.MaxReconnectWait = 10000;
            wrapperConfig.SeperatorChars = null;
            wrapperConfig.BrowseToNotSupported = false;
            wrapperConfig.ItemIdParser = new ItemIdParser();

            // create an instance of the wrapper node manager.
            TutorialDaComNodeManager manager = new TutorialDaComNodeManager(
                server,
                wrapperConfig.ServerUrl,
                wrapperConfig,
                true);

            nodeManagers.Add(manager);
            #endregion

            // create master node manager.
            return new MasterNodeManager(server, configuration, null, nodeManagers.ToArray());
        }
Example #18
0
 /// <summary>
 /// Creates a form which uses the specified client configuration.
 /// </summary>
 /// <param name="configuration">The configuration to use.</param>
 public MainForm(ApplicationConfiguration configuration)
 {
     InitializeComponent();
     ConnectServerCTRL.Configuration = m_configuration = configuration;
     ConnectServerCTRL.ServerUrl = "opc.tcp://diamond:62522/Quickstarts/PerfTestServer";
     this.Text = m_configuration.ApplicationName;
 }
        /// <summary>
        /// Displays the dialog.
        /// </summary>
        public EndpointDescription ShowDialog(
            ApplicationConfiguration     configuration,
            ConfiguredEndpointCollection endpoints,
            X509Certificate2             clientCertificate)
        {
            m_configuration     = configuration;
            m_endpoints         = endpoints;
            m_messageContext    = configuration.CreateMessageContext();
            m_clientCertificate = clientCertificate;
            m_running           = false;
            m_filePath          = @".\perftest.csv";
                        
            EndpointSelectorCTRL.Initialize(m_endpoints, configuration);
            
            lock (m_lock)
            {
                OkBTN.Enabled = m_running = false;
            }

            // show dialog.
            if (ShowDialog() != DialogResult.OK)
            {
                return null;
            }

            return null;
        }
        /// <summary>
        /// Initializes the object with default values.
        /// </summary>
        public CoreNodeManager(
            IServerInternal          server,
            ApplicationConfiguration configuration,
            ushort                   dynamicNamespaceIndex)
        {
            if (server == null)        throw new ArgumentNullException("server");
            if (configuration == null) throw new ArgumentNullException("configuration");
                  
            m_server                         = server;
            m_nodes                          = new NodeTable(server.NamespaceUris, server.ServerUris, server.TypeTree);
            m_monitoredItems                 = new Dictionary<uint,MonitoredItem>();
            m_defaultMinimumSamplingInterval = 1000;
            m_namespaceUris                  = new List<string>();
            m_dynamicNamespaceIndex          = dynamicNamespaceIndex; 
            
            #if LEGACY_CORENODEMANAGER
            m_eventSources = new Dictionary<object,IEventSource>();
            #endif

            // use namespace 1 if out of range.
            if (m_dynamicNamespaceIndex == 0 || m_dynamicNamespaceIndex >= server.NamespaceUris.Count)
            {
                m_dynamicNamespaceIndex = 1;
            }

            m_samplingGroupManager = new SamplingGroupManager(
                server, 
                this,
                (uint)configuration.ServerConfiguration.MaxNotificationQueueSize,
                configuration.ServerConfiguration.AvailableSamplingRates);
        }
        /// <summary>
        /// Creates the objects used to validate the user identity tokens supported by the server.
        /// </summary>
        private void CreateUserIdentityValidators(ApplicationConfiguration configuration)
        { 
            for (int ii = 0; ii < configuration.ServerConfiguration.UserTokenPolicies.Count; ii++)
            {
                UserTokenPolicy policy = configuration.ServerConfiguration.UserTokenPolicies[ii];

                // ignore policies without an explicit id.
                if (String.IsNullOrEmpty(policy.PolicyId))
                {
                    continue;
                }
                
                // create a validator for an issued token policy.
                if (policy.TokenType == UserTokenType.IssuedToken)
                {
                    // the name of the element in the configuration file.
                    XmlQualifiedName qname = new XmlQualifiedName(policy.PolicyId, Namespaces.OpcUa);

                    // find the id for the issuer certificate.
                    CertificateIdentifier id = configuration.ParseExtension<CertificateIdentifier>(qname);
                    
                    if (id == null)
                    {
                        Utils.Trace(
                            (int)Utils.TraceMasks.Error, 
                            "Could not load CertificateIdentifier for UserTokenPolicy {0}", 
                            policy.PolicyId);

                        continue;
                    }

                    m_tokenResolver = CreateSecurityTokenResolver(id);
                    m_tokenSerializer = WSSecurityTokenSerializer.DefaultInstance;
               }
                
                // create a validator for a certificate token policy.
                if (policy.TokenType == UserTokenType.Certificate)
                {
                    // the name of the element in the configuration file.
                    XmlQualifiedName qname = new XmlQualifiedName(policy.PolicyId, Namespaces.OpcUa);
                    
                    // find the location of the trusted issuers.
                    CertificateTrustList trustedIssuers = configuration.ParseExtension<CertificateTrustList>(qname);
                    
                    if (trustedIssuers == null)
                    {
                        Utils.Trace(
                            (int)Utils.TraceMasks.Error, 
                            "Could not load CertificateTrustList for UserTokenPolicy {0}", 
                            policy.PolicyId);

                        continue;
                    }

                    // trusts any certificate in the trusted people store.
                    m_certificateValidator = X509CertificateValidator.PeerTrust;
                }
            }
        }
        public void ShouldStillRemoveConfigurationFileIfGitRemoteIsNotRemoved([Frozen]Mock<IGitRepositoryConfigurer> repositoryConfigurer, [Frozen]Mock<IFileSystem> fileSystem, ApplicationConfiguration applicationConfiguration)
        {
            repositoryConfigurer.Setup(x => x.Unconfigure()).Throws<RepositoryConfigurationException>();

            applicationConfiguration.RemoveConfiguration();

            fileSystem.Verify(x => x.Delete(It.IsAny<string>()));
        }
Example #23
0
 /// <summary>
 /// Creates a form which uses the specified client configuration.
 /// </summary>
 /// <param name="configuration">The configuration to use.</param>
 public MainForm(ApplicationConfiguration configuration)
 {
     InitializeComponent();
     this.Icon = ClientUtils.GetAppIcon();
     ConnectServerCTRL.Configuration = m_configuration = configuration;
     ConnectServerCTRL.ServerUrl = "opc.tcp://localhost:61000/DsatsDemoServer";
     this.Text = m_configuration.ApplicationName;
 }
Example #24
0
 public void CreateConfigurations(out EngineConfiguration engineConfiguration, 
     out ApplicationConfiguration applicationConfiguraion,
     out PerksConfiguration perksConfiguration)
 {
     engineConfiguration = CreateEngineConfiguration();
     applicationConfiguraion = CreateApplicationConfiguration();
     perksConfiguration = CreatePerksConfiguration();
 }
Example #25
0
 /// <summary>
 /// Constructs a new instance of the session.
 /// </summary>
 /// <param name="channel">The channel used to communicate with the server.</param>
 /// <param name="configuration">The configuration for the client application.</param>
 /// <param name="endpoint">The endpoint use to initialize the channel.</param>
 public Session(
     ISessionChannel channel,
     ApplicationConfiguration configuration,
     ConfiguredEndpoint endpoint)
 :
     this(channel as ITransportChannel, configuration, endpoint, null)
 {
 }
Example #26
0
 public StrategiesForm(StrategyConfiguration strategyConfiguration, List<CryptoCoin> knownCoins, 
     ApplicationConfiguration applicationConfiguration)
 {
     InitializeComponent();
     this.strategyConfiguration = strategyConfiguration;
     this.applicationConfiguration = applicationConfiguration;
     this.knownCoins = knownCoins;
 }
Example #27
0
 /// <summary>
 /// Initializes the resource manager with the server instance that owns it.
 /// </summary>
 public ResourceManager(IServerInternal server, ApplicationConfiguration configuration)
 {
     if (server == null) throw new ArgumentNullException("server");    
     if (configuration == null) throw new ArgumentNullException("configuration");
    
     m_server = server;
     m_translationTables = new List<TranslationTable>();
 }
Example #28
0
        /// <summary>
        /// Creates a form which uses the specified client configuration.
        /// </summary>
        /// <param name="configuration">The configuration to use.</param>
        public MainForm(ApplicationConfiguration configuration)
        {
            InitializeComponent();
            this.Icon = ClientUtils.GetAppIcon();

            ConnectServerCTRL.Configuration = m_configuration = configuration;
            ConnectServerCTRL.ServerUrl = "opc.tcp://localhost:62541/Quickstarts/MethodsServer";
            this.Text = m_configuration.ApplicationName;
        }
Example #29
0
        public SettingsForm(ApplicationConfiguration applicationConfiguration, XgminerConfiguration minerConfiguration,
            PathConfiguration pathConfiguration)
        {
            InitializeComponent();

            this.minerConfiguration = minerConfiguration;
            this.applicationConfiguration = applicationConfiguration;
            this.pathConfiguration = pathConfiguration;
        }
Example #30
0
        public MinerSettingsForm(XgminerConfiguration minerConfiguration, ApplicationConfiguration applicationConfiguration)
        {
            InitializeComponent();
            this.minerConfiguration = minerConfiguration;
            this.workingMinerConfiguration = ObjectCopier.CloneObject<XgminerConfiguration, XgminerConfiguration>(minerConfiguration);

            this.applicationConfiguration = applicationConfiguration;
            this.workingApplicationConfiguration = ObjectCopier.CloneObject<ApplicationConfiguration, ApplicationConfiguration>(applicationConfiguration);
        }
            private async Task ConsoleClient()
            {
                Log(conn_name + " - " + "Create an Application Configuration...");
                exitCode = ExitCode.ErrorCreateApplication;

                ApplicationInstance application = new ApplicationInstance
                {
                    ApplicationName   = "JSON-SCADA OPC-UA Client",
                    ApplicationType   = ApplicationType.Client,
                    ConfigSectionName = "",
                };

                bool haveAppCertificate         = false;
                ApplicationConfiguration config = null;

                try
                {
                    // load the application configuration.
                    Log(conn_name + " - " + "Load config from " + OPCUA_conn.configFileName);
                    config = await application.LoadApplicationConfiguration(OPCUA_conn.configFileName, false);

                    // config.SecurityConfiguration.AutoAcceptUntrustedCertificates = true;

                    // check the application certificate.
                    haveAppCertificate = await application.CheckApplicationInstanceCertificate(false, 0);

                    if (!haveAppCertificate)
                    {
                        Log(conn_name + " - " + "FATAL: Application instance certificate invalid!", LogLevelNoLog);
                        Environment.Exit(1);
                    }

                    if (haveAppCertificate)
                    {
                        config.ApplicationUri = X509Utils.GetApplicationUriFromCertificate(config.SecurityConfiguration.ApplicationCertificate.Certificate);
                        if (config.SecurityConfiguration.AutoAcceptUntrustedCertificates)
                        {
                            autoAccept = true;
                        }
                        config.CertificateValidator.CertificateValidation += new CertificateValidationEventHandler(CertificateValidator_CertificateValidation);
                    }
                    else
                    {
                        Log(conn_name + " - " + "WARN: missing application certificate, using unsecure connection.");
                    }
                }
                catch (Exception e)
                {
                    Log(conn_name + " - WARN: " + e.Message);
                }

                if (config == null)
                {
                    Log(conn_name + " - " + "FATAL: error in XML config file!", LogLevelNoLog);
                    Environment.Exit(1);
                }

                try
                {
                    Log(conn_name + " - " + "Discover endpoints of " + OPCUA_conn.endpointURLs[0]);
                    exitCode = ExitCode.ErrorDiscoverEndpoints;
                    var selectedEndpoint = CoreClientUtils.SelectEndpoint(OPCUA_conn.endpointURLs[0], haveAppCertificate && OPCUA_conn.useSecurity, 15000);
                    Log(conn_name + " - " + "Selected endpoint uses: " +
                        selectedEndpoint.SecurityPolicyUri.Substring(selectedEndpoint.SecurityPolicyUri.LastIndexOf('#') + 1));

                    Log(conn_name + " - " + "Create a session with OPC UA server.");
                    exitCode = ExitCode.ErrorCreateSession;
                    var endpointConfiguration = EndpointConfiguration.Create(config);
                    var endpoint = new ConfiguredEndpoint(null, selectedEndpoint, endpointConfiguration);

                    await Task.Delay(50);

                    session = await Session.Create(config, endpoint, false, "OPC UA Console Client", 60000, new UserIdentity(new AnonymousIdentityToken()), null);

                    // Log("" + session.KeepAliveInterval); // default is 5000
                    session.KeepAliveInterval = System.Convert.ToInt32(OPCUA_conn.timeoutMs);

                    // register keep alive handler
                    session.KeepAlive += Client_KeepAlive;
                }
                catch (Exception e)
                {
                    Log(conn_name + " - WARN: " + e.Message);
                }

                if (session == null)
                {
                    Log(conn_name + " - " + "FATAL: error creating session!", LogLevelNoLog);
                    Environment.Exit(1);
                }

                Log(conn_name + " - " + "Browsing the OPC UA server namespace.");
                exitCode = ExitCode.ErrorBrowseNamespace;

                await FindObjects(session, ObjectIds.ObjectsFolder);

                await Task.Delay(50);

                Log(conn_name + " - " + "Add a list of items (server current time and status) to the subscription.");
                exitCode = ExitCode.ErrorMonitoredItem;
                ListMon.ForEach(i => i.Notification += OnNotification);
                //ListMon.ForEach(i => i.SamplingInterval = System.Convert.ToInt32(System.Convert.ToDouble(OPCUA_conn.autoCreateTagSamplingInterval) * 1000);
                // ListMon.ForEach(i => Log(conn_name + " - " + i.DisplayName));
                Log(conn_name + " - " + ListMon.Count + " Objects found");

                Log(conn_name + " - " + "Create a subscription with publishing interval of " + System.Convert.ToDouble(OPCUA_conn.autoCreateTagPublishingInterval) + "seconds");
                exitCode = ExitCode.ErrorCreateSubscription;
                var subscription =
                    new Subscription(session.DefaultSubscription)
                {
                    PublishingInterval = System.Convert.ToInt32(System.Convert.ToDouble(OPCUA_conn.autoCreateTagPublishingInterval) * 1000),
                    PublishingEnabled  = true
                };

                await Task.Delay(50);

                subscription.AddItems(ListMon);

                await Task.Delay(50);

                Log(conn_name + " - " + "Add the subscription to the session.");
                Log(conn_name + " - " + subscription.MonitoredItemCount + " Monitored items");
                exitCode = ExitCode.ErrorAddSubscription;
                session.AddSubscription(subscription);
                subscription.Create();

                subscription.ApplyChanges();

                Log(conn_name + " - " + "Running...");
                exitCode = ExitCode.ErrorRunning;
            }
 /// <summary>
 /// Creates a form which displays the status for a UA server.
 /// </summary>
 public ServerForm(StandardServer server, ApplicationConfiguration configuration) : base(server, configuration)
 {
 }
 /// <inheritdoc/>
 public INodeManager CreateNodeManager(IServerInternal server,
                                       ApplicationConfiguration configuration)
 {
     return(new SimpleEventsNodeManager(server, configuration));
 }
Example #34
0
 /// <summary>
 /// Initializes a new instance of the UAClient class.
 /// </summary>
 public UAClient(ApplicationConfiguration configuration)
 {
     m_configuration = configuration;
     m_configuration.CertificateValidator.CertificateValidation += CertificateValidation;
 }
Example #35
0
        /// <summary>
        /// Creates the resource manager for the server.
        /// </summary>
        protected override ResourceManager CreateResourceManager(IServerInternal server, ApplicationConfiguration configuration)
        {
            ResourceManager resourceManager = new ResourceManager(server, configuration);

            // add some localized strings to the resource manager to demonstrate that localization occurs.
            resourceManager.Add("InvalidPassword", "de-DE", "Das Passwort ist nicht gültig für Konto '{0}'.");
            resourceManager.Add("InvalidPassword", "es-ES", "La contraseña no es válida para la cuenta de '{0}'.");

            resourceManager.Add("UnexpectedUserTokenError", "fr-FR", "Une erreur inattendue s'est produite lors de la validation utilisateur.");
            resourceManager.Add("UnexpectedUserTokenError", "de-DE", "Ein unerwarteter Fehler ist aufgetreten während des Anwenders.");

            return(resourceManager);
        }
 public static ServiceBundle Create(ApplicationConfiguration config)
 {
     return(new ServiceBundle(config));
 }
Example #37
0
 /// <summary>
 /// Constructor
 /// </summary>
 public DownloadMonthlyQueueData(ApplicationConfiguration config)
 {
     m_configuration = config;
 }
Example #38
0
 /// <inheritdoc />
 public IWebUIFactory GetWebUiFactory(ApplicationConfiguration appConfig)
 {
     return(appConfig.WebUiFactoryCreator != null?
            appConfig.WebUiFactoryCreator() :
                CreateWebUiFactory());
 }
Example #39
0
        public GitWebhookController()
        {
            var configuration = ApplicationConfiguration.Read <UlearnConfiguration>();

            gitSecret = configuration.Git.Webhook.Secret;
        }
Example #40
0
        protected override MasterNodeManager CreateMasterNodeManager(IServerInternal server, ApplicationConfiguration configuration)
        {
            List <INodeManager> nodeManagers = new List <INodeManager>();

            nodeManagers.Add(new SimpleNodeManager(server, configuration));

            return(new MasterNodeManager(server, configuration, null, nodeManagers.ToArray()));
        }
Example #41
0
        /// <summary>
        /// Creates the node managers for the server.
        /// </summary>
        /// <remarks>
        /// This method allows the sub-class create any additional node managers which it uses. The SDK
        /// always creates a CoreNodeManager which handles the built-in nodes defined by the specification.
        /// Any additional NodeManagers are expected to handle application specific nodes.
        /// </remarks>
        protected override MasterNodeManager CreateMasterNodeManager(IServerInternal server, ApplicationConfiguration configuration)
        {
            Utils.Trace("Creating the Node Managers.");

            List <INodeManager> nodeManagers = new List <INodeManager>();

            // create the custom node managers.
            nodeManagers.Add(new ApplicationsNodeManager(server, configuration));

            // create master node manager.
            return(new MasterNodeManager(server, configuration, null, nodeManagers.ToArray()));
        }
 /// <inheritdoc/>
 public INodeManager CreateNodeManager(IServerInternal server,
                                       ApplicationConfiguration configuration)
 {
     return(new MemoryBufferNodeManager(server, configuration));
 }
        /// <summary>
        /// Creates the node managers for the server.
        /// </summary>
        /// <remarks>
        /// This method allows the sub-class create any additional node managers which it uses. The SDK
        /// always creates a CoreNodesManager which handles the built-in nodes defined by the specification.
        /// Any additional NodeManagers are expected to handle application specific nodes.
        /// </remarks>
        protected override MasterNodeManager CreateMasterNodeManager(IServerInternal server, ApplicationConfiguration configuration)
        {
            var nodeManagers = new List <INodeManager>();

            if (!string.IsNullOrEmpty(NodesFileName) && !File.Exists(NodesFileName))
            {
                string errorMessage = $"The user node configuration file {NodesFileName} does not exist.";
                Logger.Error(errorMessage);
                throw new Exception(errorMessage);
            }

            // Add encodable complex types.
            server.Factory.AddEncodeableTypes(Assembly.GetExecutingAssembly());

            PlcNodeManager = new PlcNodeManager(server, configuration, NodesFileName);
            nodeManagers.Add(PlcNodeManager);

            if (PlcSimulation.AddSimpleEventsSimulation)
            {
                SimpleEventsNodeManager = new SimpleEventsNodeManager(server, configuration);
                nodeManagers.Add(SimpleEventsNodeManager);
            }

            if (PlcSimulation.AddAlarmSimulation)
            {
                AlarmNodeManager = new AlarmConditionServerNodeManager(server, configuration);
                nodeManagers.Add(AlarmNodeManager);
            }

            if (PlcSimulation.AddReferenceTestSimulation)
            {
                SimulationNodeManager = new ReferenceNodeManager(server, configuration);
                nodeManagers.Add(SimulationNodeManager);
            }

            var masterNodeManager = new MasterNodeManager(server, configuration, null, nodeManagers.ToArray());

            return(masterNodeManager);
        }
Example #44
0
        public async Task StartServer(bool clean, int basePort = -1)
        {
            ApplicationInstance.MessageDlg = new ApplicationMessageDlg();
            ApplicationInstance application = new ApplicationInstance
            {
                ApplicationName   = "Global Discovery Server",
                ApplicationType   = ApplicationType.Server,
                ConfigSectionName = "Opc.Ua.GlobalDiscoveryTestServer"
            };

            // load the application configuration.
            ApplicationConfiguration config = await application.LoadApplicationConfiguration(false);

            TestUtils.PatchBaseAddressesPorts(config, basePort);

            if (clean)
            {
                string thumbprint = config.SecurityConfiguration.ApplicationCertificate.Thumbprint;
                if (thumbprint != null)
                {
                    using (var store = config.SecurityConfiguration.ApplicationCertificate.OpenStore())
                    {
                        await store.Delete(thumbprint);
                    }
                }

                // always start with clean cert store
                TestUtils.CleanupTrustList(config.SecurityConfiguration.TrustedIssuerCertificates.OpenStore());
                TestUtils.CleanupTrustList(config.SecurityConfiguration.TrustedPeerCertificates.OpenStore());
                TestUtils.CleanupTrustList(config.SecurityConfiguration.RejectedCertificateStore.OpenStore());
            }

            if (clean)
            {
                string thumbprint = config.SecurityConfiguration.ApplicationCertificate.Thumbprint;
                if (thumbprint != null)
                {
                    using (var store = config.SecurityConfiguration.ApplicationCertificate.OpenStore())
                    {
                        await store.Delete(thumbprint);
                    }
                }

                // always start with clean cert store
                TestUtils.CleanupTrustList(config.SecurityConfiguration.ApplicationCertificate.OpenStore());
                TestUtils.CleanupTrustList(config.SecurityConfiguration.TrustedIssuerCertificates.OpenStore());
                TestUtils.CleanupTrustList(config.SecurityConfiguration.TrustedPeerCertificates.OpenStore());
                TestUtils.CleanupTrustList(config.SecurityConfiguration.RejectedCertificateStore.OpenStore());
                config = await application.LoadApplicationConfiguration(false);
            }

            TestUtils.PatchBaseAddressesPorts(config, basePort);

            // check the application certificate.
            bool haveAppCertificate = await application.CheckApplicationInstanceCertificate(false, 0);

            if (!haveAppCertificate)
            {
                throw new Exception("Application instance certificate invalid!");
            }

            if (!config.SecurityConfiguration.AutoAcceptUntrustedCertificates)
            {
                config.CertificateValidator.CertificateValidation += new CertificateValidationEventHandler(CertificateValidator_CertificateValidation);
            }

            // get the DatabaseStorePath configuration parameter.
            GlobalDiscoveryServerConfiguration gdsConfiguration = config.ParseExtension <GlobalDiscoveryServerConfiguration>();
            string databaseStorePath = Utils.ReplaceSpecialFolderNames(gdsConfiguration.DatabaseStorePath);

            if (clean)
            {
                // clean up database
                if (File.Exists(databaseStorePath))
                {
                    File.Delete(databaseStorePath);
                }

                // clean up GDS stores
                TestUtils.DeleteDirectory(gdsConfiguration.AuthoritiesStorePath);
                TestUtils.DeleteDirectory(gdsConfiguration.ApplicationCertificatesStorePath);
                foreach (var group in gdsConfiguration.CertificateGroups)
                {
                    TestUtils.DeleteDirectory(group.BaseStorePath);
                }
            }

            var database = JsonApplicationsDatabase.Load(databaseStorePath);

            // start the server.
            m_server = new GlobalDiscoverySampleServer(
                database,
                database,
                new CertificateGroup());
            await application.Start(m_server);

            ServerState serverState = Server.GetStatus().State;

            if ((serverState = Server.GetStatus().State) != ServerState.Running)
            {
                throw new ServiceResultException("Server failed to start");
            }
        }
 /// <summary>
 /// Initializes the node manager.
 /// </summary>
 public AlarmNodeManager(IServerInternal server, ApplicationConfiguration configuration, string[] namespaceUris) :
     base(server, configuration, namespaceUris)
 {
 }
Example #46
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("文书是否要集中打印", "集中打印", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
            {
                return;
            }
            foreach (CheckedListBoxItem item in chkDocCheckList.Items)
            {
                if (item.CheckState == CheckState.Checked)
                {
                    ApplicationConfiguration.MedicalDocucementElement document = ApplicationConfiguration.GetMedicalDocument(item.Value.ToString());

                    //没有找到退出
                    if (string.IsNullOrEmpty(document.Caption))
                    {
                        DialogResult dialogResult = MessageBoxFormPC.Show(string.Format("无法加载文书'{0}'的设计模版,请确保模版文件已经存在", item.Value.ToString()),
                                                                          "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        continue;
                    }

                    try
                    {
                        Type          t       = Type.GetType(document.Type);
                        CustomBaseDoc baseDoc = Activator.CreateInstance(t) as CustomBaseDoc;
                        baseDoc.BackColor = Color.White;
                        baseDoc.Name      = item.Value.ToString();
                        baseDoc.HideScrollBar();
                        baseDoc.Initial();
                        baseDoc.LoadReport(ExtendApplicationContext.Current.AppPath + document.Path);
                        bool IsPrintSuccess = baseDoc.PrintBaseDoc();

                        List <string> fileList = new List <string>();
                        foreach (CheckedListBoxItem boxItem in chkDocCheckList.Items)
                        {
                            if (boxItem.CheckState == CheckState.Checked)
                            {
                                fileList.Add(boxItem.Value.ToString());
                            }
                        }
                        //ApplicationConfiguration.multiPrintNames = string.Join(",", fileList.ToArray());

                        //(new ConfigurationDA()).UpdateConfigTableDataTable(ExtendApplicationContext.Current.CommDict.ConfigDict);

                        //if (ExtendApplicationContext.Current.PatientInformation != null && IsPrintSuccess)
                        //{
                        //    Common.MED_ANES_BUTTON_MARKDataTable buttonMarkDT = new CommonDA().GetAnesDocButtonMarkData(ExtendApplicationContext.Current.PatientInformation.PatientID,
                        //    ExtendApplicationContext.Current.PatientInformation.VisitID, ExtendApplicationContext.Current.PatientInformation.OperID, MedicalDocSettings.ReturnDocNameByKey(baseDoc.Name));
                        //    if (buttonMarkDT.Count == 0)
                        //    {
                        //        Common.MED_ANES_BUTTON_MARKRow dr = buttonMarkDT.NewMED_ANES_BUTTON_MARKRow();
                        //        dr.PATIENT_ID = ExtendApplicationContext.Current.PatientInformation.PatientID;
                        //        dr.VISIT_ID = ExtendApplicationContext.Current.PatientInformation.VisitID;
                        //        dr.OPER_ID = ExtendApplicationContext.Current.PatientInformation.OperID;
                        //        dr.BUTTON_NAME = MedicalDocSettings.ReturnDocNameByKey(baseDoc.Name);
                        //        dr.RGB = new CommonDA().returnRGB(Color.Blue);
                        //        buttonMarkDT.AddMED_ANES_BUTTON_MARKRow(dr);

                        //    }
                        //    else if (buttonMarkDT.Count > 0)
                        //    {
                        //        Common.MED_ANES_BUTTON_MARKRow dr = buttonMarkDT[0] as Common.MED_ANES_BUTTON_MARKRow;
                        //        dr.RGB = new CommonDA().returnRGB(Color.Blue);
                        //    }
                        //    try
                        //    {
                        //        int r = new CommonDA().UpdateAnesDocButtonMarkData(buttonMarkDT);
                        //    }
                        //    catch (Exception ex)
                        //    {
                        //        ExceptionHandler.Handle(ex);
                        //    }                 //todo
                        //}
                    }
                    catch
                    {
                    }
                }
            }
        }
 /// <inheritdoc/>
 public INodeManager Create(IServerInternal server, ApplicationConfiguration configuration)
 {
     return(new AlarmNodeManager(server, configuration, NamespacesUris.ToArray()));
 }
Example #48
0
 static void Main()
 {
     ApplicationConfiguration.Initialize();
     Application.Run(new Main());
 }
Example #49
0
        /// <summary>
        /// Creates the node managers for the server.
        /// </summary>
        /// <remarks>
        /// This method allows the sub-class create any additional node managers which it uses. The SDK
        /// always creates a CoreNodeManager which handles the built-in nodes defined by the specification.
        /// Any additional NodeManagers are expected to handle application specific nodes.
        ///
        /// Applications with small address spaces do not need to create their own NodeManagers and can add any
        /// application specific nodes to the CoreNodeManager. Applications should use custom NodeManagers when
        /// the structure of the address space is stored in another system or when the address space is too large
        /// to keep in memory.
        /// </remarks>
        protected override MasterNodeManager CreateMasterNodeManager(IServerInternal server, ApplicationConfiguration configuration)
        {
            Debug.WriteLine("Creating the Node Managers.");

            List <INodeManager> nodeManagers = new List <INodeManager>();

            // create the custom node managers.
            nodeManagers.Add(new global::TestData.TestDataNodeManager(server, configuration));
            nodeManagers.Add(new global::MemoryBuffer.MemoryBufferNodeManager(server, configuration));
            nodeManagers.Add(new global::Boiler.BoilerNodeManager(server, configuration));

            // create master node manager.
            return(new MasterNodeManager(server, configuration, null, nodeManagers.ToArray()));
        }
        public async Task LoadClientConfiguration(int port = -1)
        {
            ApplicationInstance.MessageDlg = new ApplicationMessageDlg();
            ApplicationInstance application = new ApplicationInstance {
                ApplicationName   = "Server Configuration Push Test Client",
                ApplicationType   = ApplicationType.Client,
                ConfigSectionName = "Opc.Ua.ServerConfigurationPushTestClient"
            };

#if USE_FILE_CONFIG
            // load the application configuration.
            Config = await application.LoadApplicationConfiguration(false).ConfigureAwait(false);
#else
            string root         = Path.Combine("%LocalApplicationData%", "OPC");
            string pkiRoot      = Path.Combine(root, "pki");
            var    clientConfig = new ServerConfigurationPushTestClientConfiguration()
            {
                ServerUrl        = "opc.tcp://localhost:58810/GlobalDiscoveryTestServer",
                AppUserName      = "",
                AppPassword      = "",
                SysAdminUserName = "******",
                SysAdminPassword = "******",
                TempStorePath    = Path.Combine(pkiRoot, "temp")
            };

            var transportQuotas = new TransportQuotas()
            {
                OperationTimeout      = 120000,
                MaxStringLength       = 1048576,
                MaxByteStringLength   = 1048576,
                MaxArrayLength        = 65535,
                MaxMessageSize        = 4194304,
                MaxBufferSize         = 65535,
                ChannelLifetime       = 300000,
                SecurityTokenLifetime = 3600000,
            };

            // build the application configuration.
            Config = await application
                     .Build(
                "urn:localhost:opcfoundation.org:ServerConfigurationPushTestClient",
                "http://opcfoundation.org/UA/ServerConfigurationPushTestClient")
                     .SetTransportQuotas(transportQuotas)
                     .AsClient()
                     .AddSecurityConfiguration(
                "CN=Server Configuration Push Test Client, O=OPC Foundation",
                pkiRoot, pkiRoot, pkiRoot)
                     .SetAutoAcceptUntrustedCertificates(true)
                     .SetRejectSHA1SignedCertificates(false)
                     .SetRejectUnknownRevocationStatus(true)
                     .SetMinimumCertificateKeySize(1024)
                     .AddExtension <ServerConfigurationPushTestClientConfiguration>(null, clientConfig)
                     .SetOutputFilePath(Path.Combine(root, "Logs", "Opc.Ua.Gds.Tests.log.txt"))
                     .SetTraceMasks(Utils.TraceMasks.Error)
                     .Create().ConfigureAwait(false);
#endif
            // check the application certificate.
            bool haveAppCertificate = await application.CheckApplicationInstanceCertificate(true, 0).ConfigureAwait(false);

            if (!haveAppCertificate)
            {
                throw new Exception("Application instance certificate invalid!");
            }

            Config.CertificateValidator.CertificateValidation += new CertificateValidationEventHandler(CertificateValidator_CertificateValidation);

            ServerConfigurationPushTestClientConfiguration clientConfiguration = application.ApplicationConfiguration.ParseExtension <ServerConfigurationPushTestClientConfiguration>();
            m_client = new ServerPushConfigurationClient(application.ApplicationConfiguration)
            {
                EndpointUrl = TestUtils.PatchOnlyGDSEndpointUrlPort(clientConfiguration.ServerUrl, port)
            };
            if (String.IsNullOrEmpty(clientConfiguration.AppUserName))
            {
                AppUser = new UserIdentity(new AnonymousIdentityToken());
            }
            else
            {
                AppUser = new UserIdentity(clientConfiguration.AppUserName, clientConfiguration.AppPassword);
            }
            SysAdminUser  = new UserIdentity(clientConfiguration.SysAdminUserName, clientConfiguration.SysAdminPassword);
            TempStorePath = clientConfiguration.TempStorePath;
        }
 public static MaximoOperationExecutionContext GetInstance(IOperationData operationData, DynamicObject proxy = null)
 {
     return(ApplicationConfiguration.IsMif() ? (MaximoOperationExecutionContext) new MifExecutionContext(operationData, proxy) :
            new MeaExecutionContext(operationData, proxy));
 }
Example #52
0
 public XNodeManager(IServerInternal server, ApplicationConfiguration configuration) : base(server, configuration,
                                                                                            "http://opcfoundation.org/Quickstarts/ReferenceApplications")
 {
 }
Example #53
0
 public override IBroker CreateBroker(ApplicationConfiguration appConfig, CoreUIParent uiParent)
 {
     return(new WamBroker(uiParent, appConfig, Logger));
 }
        /// <summary>
        /// Creates the resource manager for the server.
        /// </summary>
        protected override ResourceManager CreateResourceManager(IServerInternal server, ApplicationConfiguration configuration)
        {
            var resourceManager = new ResourceManager(server, configuration);

            FieldInfo[] fields = typeof(StatusCodes).GetFields(BindingFlags.Public | BindingFlags.Static);

            foreach (FieldInfo field in fields)
            {
                uint?id = field.GetValue(typeof(StatusCodes)) as uint?;

                if (id != null)
                {
                    resourceManager.Add(id.Value, "en-US", field.Name);
                }
            }

            return(resourceManager);
        }
Example #55
0
        /// <summary>
        /// Finds the endpoint that best matches the current settings.
        /// </summary>
        /// <param name="discoveryUrl">The discovery URL.</param>
        /// <param name="useSecurity">if set to <c>true</c> select an endpoint that uses security.</param>
        /// <returns>The best available endpoint.</returns>
        public static EndpointDescription SelectEndpoint(ApplicationConfiguration application, string discoveryUrl, bool useSecurity)
        {
            // needs to add the '/discovery' back onto non-UA TCP URLs.
            if (discoveryUrl.StartsWith(Utils.UriSchemeHttps))
            {
                if (!discoveryUrl.EndsWith("/discovery"))
                {
                    discoveryUrl += "/discovery";
                }
            }

            // parse the selected URL.
            Uri uri = new Uri(discoveryUrl);

            // set a short timeout because this is happening in the drop down event.
            EndpointConfiguration configuration = EndpointConfiguration.Create();

            configuration.OperationTimeout = 5000;

            EndpointDescription selectedEndpoint = null;

            // Connect to the server's discovery endpoint and find the available configuration.
            using (DiscoveryClient client = DiscoveryClient.Create(uri, configuration))
            {
                EndpointDescriptionCollection endpoints = client.GetEndpoints(null);

                // select the best endpoint to use based on the selected URL and the UseSecurity checkbox.
                for (int ii = 0; ii < endpoints.Count; ii++)
                {
                    EndpointDescription endpoint = endpoints[ii];

                    // check for a match on the URL scheme.
                    if (endpoint.EndpointUrl.StartsWith(uri.Scheme))
                    {
                        // check if security was requested.
                        if (useSecurity)
                        {
                            if (endpoint.SecurityMode == MessageSecurityMode.None)
                            {
                                continue;
                            }
                        }
                        else
                        {
                            if (endpoint.SecurityMode != MessageSecurityMode.None)
                            {
                                continue;
                            }
                        }

                        // pick the first available endpoint by default.
                        if (selectedEndpoint == null)
                        {
                            selectedEndpoint = endpoint;
                        }

                        // The security level is a relative measure assigned by the server to the
                        // endpoints that it returns. Clients should always pick the highest level
                        // unless they have a reason not too.
                        if (endpoint.SecurityLevel > selectedEndpoint.SecurityLevel)
                        {
                            selectedEndpoint = endpoint;
                        }
                    }
                }

                // pick the first available endpoint by default.
                if (selectedEndpoint == null && endpoints.Count > 0)
                {
                    selectedEndpoint = endpoints[0];
                }
            }

            // if a server is behind a firewall it may return URLs that are not accessible to the client.
            // This problem can be avoided by assuming that the domain in the URL used to call
            // GetEndpoints can be used to access any of the endpoints. This code makes that conversion.
            // Note that the conversion only makes sense if discovery uses the same protocol as the endpoint.

            Uri endpointUrl = Utils.ParseUri(selectedEndpoint.EndpointUrl);

            if (endpointUrl != null && endpointUrl.Scheme == uri.Scheme)
            {
                UriBuilder builder = new UriBuilder(endpointUrl);
                builder.Host = uri.DnsSafeHost;
                builder.Port = uri.Port;
                selectedEndpoint.EndpointUrl = builder.ToString();
            }

            // return the selected endpoint.
            return(selectedEndpoint);
        }
Example #56
0
 public ULearnDb()
     : this(ApplicationConfiguration.Read <DatabaseConfiguration>().Database)
 {
 }
Example #57
0
        protected override MasterNodeManager CreateMasterNodeManager(IServerInternal server, ApplicationConfiguration configuration)
        {
            Utils.Trace("Creating the Node Managers.");
            List <INodeManager> nodeManagers = new List <INodeManager>();

            //tao node theo danh sach
            nodeManagers.Add(new EmptyNodeManager(server, configuration));
            //tao cac node chay rieng boi server
            return(new MasterNodeManager(server, configuration, null, nodeManagers.ToArray()));
        }
Example #58
0
        private static void EnsureApplicationCertificate(ApplicationConfiguration configuration)
        {
            const ushort keySize          = 1024;
            const ushort lifetimeInMonths = 300;

            if (configuration == null)
            {
                throw new ArgumentNullException("configuration");
            }
            bool   errorFlag              = false;
            string hostName               = Dns.GetHostName();
            var    serverDomainNames      = configuration.GetServerDomainNames();
            var    applicationCertificate = configuration.SecurityConfiguration.ApplicationCertificate;
            var    certificate            = applicationCertificate.Find(true);

            if (certificate != null)
            {
                // if cert found then check domains
                var domainsFromCertficate = Utils.GetDomainsFromCertficate(certificate);
                foreach (string serverDomainName in serverDomainNames)
                {
                    if (Utils.FindStringIgnoreCase(domainsFromCertficate, serverDomainName))
                    {
                        continue;
                    }
                    if (string.Equals(serverDomainName, "localhost", StringComparison.OrdinalIgnoreCase))
                    {
                        if (Utils.FindStringIgnoreCase(domainsFromCertficate, hostName))
                        {
                            continue;
                        }
                        var hostEntry = Dns.GetHostEntry(hostName);
                        if (hostEntry.Aliases.Any(alias => Utils.FindStringIgnoreCase(domainsFromCertficate, alias)))
                        {
                            continue;
                        }
                        if (hostEntry.AddressList.Any(ipAddress => Utils.FindStringIgnoreCase(domainsFromCertficate, ipAddress.ToString())))
                        {
                            continue;
                        }
                    }
                    Trace.TraceInformation("The application is configured to use domain '{0}' which does not appear in the certificate.", serverDomainName);
                    errorFlag = true;
                } // end for
                // if no errors and keySizes match
                if (!errorFlag && (keySize == certificate.PublicKey.Key.KeySize))
                {
                    return; // cert okay
                }
            }
            // if we get here then we'll create a new cert
            if (certificate == null)
            {
                certificate = applicationCertificate.Find(false);
                if (certificate != null)
                {
                    Trace.TraceInformation("Matching certificate with SubjectName '{0}' found but without a private key.", applicationCertificate.SubjectName);
                }
            }
            // lets check if there is any to delete
            if (certificate != null)
            {
                using (var store2 = applicationCertificate.OpenStore())
                {
                    store2.Delete(certificate.Thumbprint);
                }
            }
            if (serverDomainNames.Count == 0)
            {
                serverDomainNames.Add(hostName);
            }
            CertificateFactory.CreateCertificate(applicationCertificate.StoreType, applicationCertificate.StorePath, configuration.ApplicationUri, configuration.ApplicationName, null, serverDomainNames, keySize, lifetimeInMonths);
            Trace.TraceInformation("Created new certificate with SubjectName '{0}', in certificate store '{1}'.", applicationCertificate.SubjectName, applicationCertificate.StorePath);
            configuration.CertificateValidator.Update(configuration.SecurityConfiguration);
        }
 public AccountsService()
 {
     this.configuration = new ApplicationConfiguration();
     this.configuration.Load();
 }
Example #60
0
 public virtual IBroker CreateBroker(ApplicationConfiguration appConfig, CoreUIParent uiParent)
 {
     return(appConfig.BrokerCreatorFunc != null?
            appConfig.BrokerCreatorFunc(uiParent, appConfig, Logger) :
                new NullBroker());
 }