/// <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"); } }