// Se llama en el destructor del Panel de la zona.
        public void deleteZone(int PanelID)
        {
            PoolGetConnStatus.GetInstance().subRefCount();
            //PoolGetAlarm.GetInstance().subRefCount();
            PoolGetAcceso.GetInstance().subRefCount();

            System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();

            string orgID = Helpers.GetInstance().MainOrgID.ToString();               // El configurado en el registro

            try
            {
                //Helpers.GetInstance().mutexTCP.WaitOne();
                try
                {
                    string errDesc = "";
                    int    errCode = (int)StatusCode.NOT_IMPLEMENTED;

                    if (!WebServiceAPI.GetInstance().ExistePanelEnOnGuard(PanelID.ToString(), out errDesc, out errCode))
                    {
                        WebServiceAPI.GetInstance().DeleteZone(PanelID.ToString(), orgID, out errDesc, out errCode);
                    }
                }
                catch (Exception) { }
            }
            catch (Exception) { }
        }
        /// <summary>
        /// getConnStatus: obtener el estado de la conexion del Handheld asociado al v_panelID
        /// YES: Conectado
        /// NO: No conectado
        /// </summary>
        /// <param name="v_PanelID"></param>
        /// <returns></returns>
        public string getConnStatus(int v_PanelID, int m_IsDownloadInProgress)
        {
            string res = "";
            //Helpers.GetInstance().updateConfigurationVariables();

            string deviceID = v_PanelID.ToString();
            string orgID    = Helpers.GetInstance().MainOrgID.ToString();             // No toma la de la llamada

            try
            {
                //string errDesc = "";
                //int errCode = (int)StatusCode.NOT_IMPLEMENTED;
                //res = WebServiceAPI.GetInstance().GetConnStatus(deviceID, orgID, out errDesc, out errCode);

                res = PoolGetConnStatus.GetInstance().getConnStatusZone()? "YES": "NO";
            }
            catch (Exception ex)
            {
                Helpers.GetInstance().DoLog("EXCEPCION en getConnStatus: " + ex.Message);
                res = "FAIL";
            }

            Thread.Sleep(500);
            return(res.Trim());
        }
 public static PoolGetConnStatus GetInstance()
 {
     if (_instance == null)
     {
         _instance = new PoolGetConnStatus();
     }
     return(_instance);
 }
 public void subRefCount()
 {
     _refCount--;
     Helpers.GetInstance().DoLog("Resto refCount de PoolGetConnStatus =" + _refCount);
     Thread.Sleep(100);
     if (_refCount == 0)
     {
         Stop();                                 // Detiene el thread de verificacion
         Thread.Sleep(500);
         _instance = null;                       // Hace null la referencia para que un nuevo GetInstance lance todo de nuevo
         Helpers.GetInstance().DoLog("Instance de PoolGetConnStatus es NULL");
     }
 }
        public static List <string> ListaPanelNames = new List <string>();          // Lista de todos los PanelNames que levanta este CommServer..

        public VirtualGateManagedTranslator()
        {
            PoolGetConnStatus.GetInstance();                    // Lanza el thread de actualizacion de ConnStatus
            PoolGetConnStatus.GetInstance().addRefCount();

            PoolGetAcceso.GetInstance();                        // Lanza el thread de actualizacion de Alarmas
            PoolGetAcceso.GetInstance().addRefCount();

            //PoolGetAlarm.GetInstance();                         // Lanza el thread de actualizacion de Accesos
            //PoolGetAlarm.GetInstance().addRefCount();

            PoolSetAcceso.GetInstance();
            PoolSetAcceso.GetInstance().addRefCount();

            //PoolSetAlarma.GetInstance();

            //PoolSetAlarma.GetInstance().addRefCount();
        }