///<summary>Gets one EServiceSignalHQ from the serviceshq db located on SERVER184. Returns null in case of failure.</summary>
        public static EServiceMetrics GetEServiceMetricsFromSignalHQ()
        {
            if (RemotingClient.RemotingRole == RemotingRole.ClientWeb)
            {
                return(Meth.GetObject <EServiceMetrics>(MethodBase.GetCurrentMethod()));
            }
            EServiceMetrics eServiceMetric = new EServiceMetrics();

            if (PrefC.ContainsKey("ServicesHqDoNotConnect") && PrefC.GetBool(PrefName.ServicesHqDoNotConnect))
            {
                eServiceMetric.ErrorMessage = "Not allowed to connect to the serviceshq database.";
                return(eServiceMetric);
            }
            string dbPassword;

            if (!CDT.Class1.Decrypt(PrefC.GetString(PrefName.ServicesHqMySqpPasswordObf), out dbPassword))
            {
                eServiceMetric.ErrorMessage = "Unable to decrypt serviceshq password";
                return(eServiceMetric);
            }
            try {
                DataAction.Run(() => {
                    //See EServiceSignalHQs.GetEServiceMetrics() for details.
                    string command = @"SELECT 0 EServiceSignalNum, h.* FROM eservicesignalhq h 
							WHERE h.ReasonCode=1024
								AND h.ReasonCategory=1
								AND h.ServiceCode=2
								AND h.RegistrationKeyNum=-1
							ORDER BY h.SigDateTime DESC 
							LIMIT 1"                            ;
                    EServiceSignal eServiceSignal = Crud.EServiceSignalCrud.SelectOne(command);
                    if (eServiceSignal != null)
                    {
                        using (XmlReader reader = XmlReader.Create(new System.IO.StringReader(eServiceSignal.Tag))) {
                            eServiceMetric = (EServiceMetrics) new XmlSerializer(typeof(EServiceMetrics)).Deserialize(reader);
                        }
                        eServiceMetric.IsValid = true;
                    }
                },
                               PrefC.GetString(PrefName.ServicesHqServer), PrefC.GetString(PrefName.ServicesHqDatabase), PrefC.GetString(PrefName.ServicesHqMySqlUser),
                               dbPassword, "", "", DatabaseType.MySql);
            }
            catch (Exception ex) {
                eServiceMetric.ErrorMessage = ex.Message;
            }
            return(eServiceMetric);
        }