/// <summary>
        /// Runs when update fusion director.
        /// </summary>
        /// <param name="fusionDirector">The fusion director.</param>
        private void RunUpdateFusionDirector(FusionDirector fusionDirector)
        {
            HWLogger.GetFdNotifyLogger(fusionDirector.HostIP).Info($"Recieve: update FusionDirector");
            var instance = this.FindInstance(fusionDirector);

            instance.Sync();
        }
        /// <summary>
        /// Runs to delete FusionDirector.
        /// </summary>
        /// <param name="fdIp">The e sight ip.</param>
        private void RunDeleteFusionDirector(string fdIp)
        {
            HWLogger.GetFdNotifyLogger(fdIp).Info($"Recieve: delete this FusionDirector");
            HWLogger.Service.Info($"Recieve: delete this FusionDirector {fdIp}");
            var syncInstance = this.SyncInstances.FirstOrDefault(y => y.FusionDirectorIp == fdIp);

            if (syncInstance != null)
            {
                syncInstance.Close();
                var isFinish = false;
                int i        = 0;
                while (!isFinish)
                {
                    i++;
                    if (syncInstance.IsComplete)
                    {
                        try
                        {
                            this.SyncInstances.Remove(syncInstance);
                            if (i > 1)//如果首次检查正在同步,则睡眠一分钟后删除,防止UI报错
                            {
                                Thread.Sleep(TimeSpan.FromSeconds(60));
                            }
                            Thread.Sleep(TimeSpan.FromSeconds(2));
                            EnclosureConnector.Instance.RemoveEnclosureByFd(fdIp);
                            ServerConnector.Instance.RemoveServerByFd(fdIp);
                        }
                        catch (Exception e)
                        {
                            HWLogger.GetFdNotifyLogger(fdIp).Error(e, $"delete this FusionDirector:");
                        }
                        isFinish = true;
                    }
                    Thread.Sleep(TimeSpan.FromSeconds(3));
                }
            }
            else
            {
                HWLogger.GetFdNotifyLogger(fdIp).Info($"delete this FusionDirector:can not find the syncInstance");
            }
        }
        /// <summary>
        /// Runs the recive new alarm.
        /// </summary>
        /// <param name="json">The json.</param>
        private void RunReciveNewAlarm(FusionDirector fusionDirector, string json)
        {
            var tcpMessage = JsonConvert.DeserializeObject <TcpMessage <AlarmData> >(json);

            HWLogger.GetFdNotifyLogger(fusionDirector.HostIP).Info($"Recieve new alarm:{JsonConvert.SerializeObject(tcpMessage)}");
            var syncInstance = this.SyncInstances.FirstOrDefault(y => y.FusionDirectorIp == fusionDirector.HostIP);

            if (syncInstance != null)
            {
                var data = tcpMessage.Data;
                if (data != null)
                {
                    syncInstance.DealNewAlarm(data);
                }
                else
                {
                    HWLogger.GetFdNotifyLogger(fusionDirector.HostIP).Error($"Recieve new alarm:message analysis faild");
                }
            }
            else
            {
                HWLogger.GetFdNotifyLogger(fusionDirector.HostIP).Info($"Recieve new alarm:can not find the syncInstance");
            }
        }