public string[] RestoreThresholds2Device()
        {
            string failMAC    = "";
            string successDID = "";
            string misMAC     = "";
            SystemThreadPool <SnmpConfiger, bool> systemThreadPool = new SystemLargeThreadPool <SnmpConfiger, bool>(this.snmpConfigs);

            systemThreadPool.GetResults(delegate(System.Collections.ICollection coll, object obj)
            {
                SnmpConfiger snmpConfiger = (SnmpConfiger)obj;
                SnmpExecutor snmpExecutor = new DefaultSnmpExecutor(snmpConfiger);
                try
                {
                    bool flag = false;
                    int num   = snmpExecutor.CheckDeviceMac(snmpConfiger.DeviceMac);
                    if (num >= 0)
                    {
                        flag = snmpExecutor.UpdateDeviceName(snmpConfiger.RestoreThresholds.DeviceName);
                    }
                    else
                    {
                        if (num == -1)
                        {
                            lock (DefaultSnmpExecutors.lockRestore)
                            {
                                misMAC = misMAC + snmpConfiger.DeviceMac + ",";
                            }
                        }
                    }
                    if (flag)
                    {
                        DevicePOPSettings devicePOPSettings = new DevicePOPSettings();
                        devicePOPSettings.copyPOPSetings(snmpConfiger.RestoreThresholds.DeviceThreshold);
                        snmpExecutor.SetDevicePOPSettings(devicePOPSettings);
                        snmpExecutor.SetDeviceThreshold(snmpConfiger.RestoreThresholds.DeviceThreshold);
                        for (int i = 0; i < snmpConfiger.RestoreThresholds.SensorThreshold.Count; i++)
                        {
                            snmpExecutor.SetSensorThreshold(snmpConfiger.RestoreThresholds.SensorThreshold[i + 1]);
                        }
                        for (int j = 0; j < snmpConfiger.RestoreThresholds.BankThreshold.Count; j++)
                        {
                            snmpExecutor.SetBankThreshold(snmpConfiger.RestoreThresholds.BankThreshold[j + 1]);
                        }
                        for (int k = 0; k < snmpConfiger.RestoreThresholds.OutletThreshold.Count; k++)
                        {
                            snmpExecutor.SetOutletThreshold(snmpConfiger.RestoreThresholds.OutletThreshold[k + 1]);
                        }
                        for (int l = 0; l < snmpConfiger.RestoreThresholds.LineThreshold.Count; l++)
                        {
                            snmpExecutor.SetLineThreshold(snmpConfiger.RestoreThresholds.LineThreshold[l + 1]);
                        }
                    }
                    if (!flag)
                    {
                        lock (DefaultSnmpExecutors.lockRestore)
                        {
                            failMAC = failMAC + snmpConfiger.DeviceMac + ",";
                            goto IL_217;
                        }
                    }
                    lock (DefaultSnmpExecutors.lockRestore)
                    {
                        successDID = successDID + snmpConfiger.DeviceID + ",";
                    }
                    IL_217:;
                }
                catch (System.Exception ex)
                {
                    lock (DefaultSnmpExecutors.lockRestore)
                    {
                        failMAC = failMAC + snmpConfiger.DeviceMac + ",";
                    }
                    DebugCenter instance = DebugCenter.GetInstance();
                    instance.appendToFile("Failed to restore config to device: " + snmpConfiger.RestoreThresholds.DeviceName + ", " + ex.Message);
                }
            });
            return(new string[]
            {
                failMAC,
                successDID,
                misMAC
            });
        }