void ServerService_StatusChange(object sender, EventArgs e)
 {
     if (ServerState.Instance.ServerService.Status == System.ServiceProcess.ServiceControllerStatus.Running)
     {
         _serverInfoControl.SetStartTime();
     }
     else if (ServerState.Instance.ServerService.Status == System.ServiceProcess.ServiceControllerStatus.Stopped)
     {
         _serverInfoControl.ResetStartTime();
     }
 }
        private void ConfigureServerInfoConrol(ServerInformationControl serverInfoControl)
        {
            ConnectionStringSettings logging;
            ConnectionStringSettings storage;
            ConnectionStringSettings options;
            ConnectionStringSettings userManagement;
            ConnectionStringSettings userPermissions;
            ConnectionStringSettings aeManagement;
            ConnectionStringSettings aePermissions;
            ConnectionStringSettings forwarding;

            System.Configuration.Configuration configPacs = DicomDemoSettingsManager.GetGlobalPacsConfiguration();

            // Machine.config file
            System.Configuration.Configuration configMachine = ConfigurationManager.OpenMachineConfiguration();

#if TUTORIAL_CUSTOM_DATABASE
            // To use a custom database schema with the Database Manager, you must define a connection string in the 'globalPacs.config' for your database.
            // You must use your 'MyStorageDataAccessConfigurationView' class to retrieve the connection string.
            // For more details, see the "Changing the LEAD Medical Storage Server to use a different database schema" tutorial.

            storage = GetConnectionString(configPacs, configMachine, new MyStorageDataAccessConfigurationView(configPacs, PacsProduct.ProductName, null).DataAccessSettingsSectionName);
#else
            storage = GetConnectionString(configPacs, configMachine, new StorageDataAccessConfigurationView(configPacs, PacsProduct.ProductName, null).DataAccessSettingsSectionName);
#endif
            logging         = GetConnectionString(configPacs, configMachine, new LoggingDataAccessConfigurationView(configPacs, PacsProduct.ProductName, null).DataAccessSettingsSectionName);
            options         = GetConnectionString(configPacs, configMachine, new OptionsDataAccessConfigurationView(configPacs, PacsProduct.ProductName, null).DataAccessSettingsSectionName);
            userManagement  = GetConnectionString(configPacs, configMachine, new UserManagementDataAccessConfigurationView(configPacs, ProductName, null).DataAccessSettingsSectionName);
            userPermissions = GetConnectionString(configPacs, configMachine, new PermissionManagementDataAccessConfigurationView(configPacs, ProductName, null).DataAccessSettingsSectionName);
            aeManagement    = GetConnectionString(configPacs, configMachine, new AeManagementDataAccessConfigurationView(configPacs, PacsProduct.ProductName, null).DataAccessSettingsSectionName);
            aePermissions   = GetConnectionString(configPacs, configMachine, new AePermissionManagementDataAccessConfigurationView(configPacs, PacsProduct.ProductName, null).DataAccessSettingsSectionName);
            forwarding      = GetConnectionString(configPacs, configMachine, new ForwardDataAccessConfigurationView(configPacs, PacsProduct.ProductName, null).DataAccessSettingsSectionName);


            Dictionary <string, string> connections = new Dictionary <string, string>();
            string storageDatabaseName = "Storage Database";
            connections.Add(storageDatabaseName, storage.ConnectionString);
            connections.Add("Logging Database", logging.ConnectionString);
            connections.Add("Server Configuration Database", options.ConnectionString);
            connections.Add("User Management Database", userManagement.ConnectionString);
            connections.Add("User Permissions Database", userPermissions.ConnectionString);
            connections.Add("Client Management Database", aeManagement.ConnectionString);
            connections.Add("Client Permissions Database", aePermissions.ConnectionString);
            connections.Add("Forwarding Database", forwarding.ConnectionString);

            serverInfoControl.SqlDatabaseList                      = connections;
            serverInfoControl.StorageDatabaseName                  = storageDatabaseName;
            serverInfoControl.MaximumClientConnectionCount         = ServerState.Instance.ServerService == null?5:ServerState.Instance.ServerService.Settings.MaxClients;
            serverInfoControl.RequestCurrentClientConnectionCount += new EventHandler <CurrentClientConnectionCountEventArgs>(serverInfoControl_RequestCurrentClientConnectionCount);
            serverInfoControl.ServiceName      = ServerState.Instance.ServerService == null ? string.Empty : ServerState.Instance.ServiceName;
            _serverInfoControl                 = serverInfoControl;
            _serverInfoControl.HideUserDetails = Program.ShouldHideUserDetails();

            if (ServerState.Instance.ServerService != null)
            {
                ServerState.Instance.ServerService.Message      += new EventHandler <Leadtools.Dicom.Server.Admin.MessageEventArgs>(ServerService_Message);
                ServerState.Instance.ServerService.StatusChange += new EventHandler(ServerService_StatusChange);
                if (ServerState.Instance.ServerService.Status == System.ServiceProcess.ServiceControllerStatus.Running)
                {
                    _serverInfoControl.SetStartTime();
                }
            }

            ServerState.Instance.ServerServiceChanged += new EventHandler(Instance_ServerServiceChanged);
            EventBroker.Instance.Subscribe <ServerSettingsAppliedEventArgs>(new EventHandler <ServerSettingsAppliedEventArgs>(OnSettingsChanged));
        }