public DataTable GetDeviceInfo()
        {
            DataTable dataTable = new DataTable()
            {
                TableName = "DResults"
            };

            dataTable.Columns.Add("ID", typeof(Guid));
            dataTable.Columns.Add("DetectionCount", typeof(int));
            dataTable.Columns.Add("DetectionFaces", typeof(int));
            dataTable.Columns.Add("DSState", typeof(string));
            dataTable.Columns.Add("CPUUsage", typeof(int));
            dataTable.Columns.Add("ThreadCount", typeof(int));
            dataTable.Columns.Add("MaxThreadCount", typeof(int));
            dataTable.Columns.Add("FrameCount", typeof(int));
            int cpuUsage       = DetectorServer.GetCpuUsage();
            int processorCount = Environment.ProcessorCount;
            int num            = Enumerable.Sum <KeyValuePair <Guid, Detector> >((IEnumerable <KeyValuePair <Guid, Detector> >)DetectorServer.Detectors, (Func <KeyValuePair <Guid, Detector>, int>)(kvp => kvp.Value.Count));

            foreach (KeyValuePair <Guid, Detector> keyValuePair in DetectorServer.Detectors)
            {
                BcDevices device = keyValuePair.Value.Device;
                if (device != null)
                {
                    dataTable.Rows.Add((object)keyValuePair.Key, (object)device.DetectionCount, (object)device.DetectionFaces, (object)"Работает", (object)cpuUsage, (object)num, (object)processorCount, (object)device.FrameCount);
                }
            }
            if (dataTable.Rows.Count == 0)
            {
                dataTable.Rows.Add((object)Guid.Empty, (object)0, (object)0, (object)"Работает", (object)cpuUsage, (object)num, (object)processorCount);
            }
            return(dataTable);
        }
 private static void TryRefreshDevices()
 {
     try
     {
         DetectorServer.SyncCurrentAndActualDevices(BcDevicesStorageExtensions.LoadByDsid(DetectorServer.MainServer.Id));
     }
     catch (Exception ex)
     {
         DetectorServer.Logger.Error((object)"refresh device error ", ex);
     }
 }
 public static async void RefreshDevicesLoop()
 {
     while (!DetectorServer.StopFlag)
     {
         if (DetectorServer._isLoaded)
         {
             DetectorServer.TryRefreshDevices();
         }
         await Task.Delay(10000);
     }
 }
 public void SetDevice(Guid id, Hashtable row, bool delete)
 {
     try
     {
         DetectorServer.TryRefreshDevices();
     }
     catch (Exception ex)
     {
         DetectorServer.Logger.Error((object)"Error set device", ex);
     }
 }
 public static void LoadServer(Guid serverId)
 {
     DetectorServer.Logger.Info((object)(" Server Loaded - ServerID -" + (object)serverId));
     try
     {
         DetectorServer.TryRefreshDevices();
         DetectorServer.MainServer = BcDetectorServer.LoadById(serverId);
     }
     catch (Exception ex)
     {
         DetectorServer.Logger.Error((object)ex);
     }
     DetectorServer._isLoaded = true;
 }