/// <summary> /// 更新界面状态 /// </summary> /// <param name="sourceomc"></param> /// <param name="obj"></param> /// <param name="name"></param> /// <param name="detail"></param> /// <param name="occurtime"></param> /// <returns></returns> public bool RaiseNMAlarm(string sourceomc, string obj, string name, string detail, DateTime occurtime) { TKAlarm tkalarm = null; try { lock (m_NMAlarms) { if (!m_NMAlarms.ContainsKey(sourceomc)) { return(false); } if (!m_NMAlarms[sourceomc].ContainsKey(obj)) { return(false); } if (!m_NMAlarms[sourceomc][obj].ContainsKey(name)) { return(false); } NMAlarm a = m_NMAlarms[sourceomc][obj][name]; if (a.TKSn != "" && a.ClearTime == "") { a.LastOccurTime = occurtime.ToString(); return(false); // 告警已经发生过,尚未恢复 } a.SourceOMC = sourceomc; a.Object = obj; a.AlarmName = name; a.OccurTime = occurtime.ToString(); a.LastOccurTime = occurtime.ToString(); a.ClearTime = ""; a.Detail = detail; a.TKSn = ""; a.ActiveTable = UniteTKActiveTable; a.ResumeTable = UniteTKResumeTable; tkalarm = ConvertNMToTKAlarm(a); try { TempStorageHelper.Instance().Store <NMAlarm>(Convert.ToInt64(a.TKSn), a); SqlHelper.ExecuteNonQuery(Connstr, CommandType.Text, a.GetSql()); TempStorageHelper.Instance().Clear <NMAlarm>(Convert.ToInt64(a.TKSn)); } catch (Exception ex) { // 存储网管告警出异常不再发出告警 // 不继续抛出告警, 允许继续往服务器发送告警 SendLog(ex.ToString()); } } try { if (tkalarm != null) { SendAlarm(tkalarm); } } catch (Exception ex) { // 向服务器发送告警失败,只记录日志,不影响程序运行 SendLog(ex.ToString()); return(false); } } catch (Exception ex) { SendLog(ex.ToString()); return(false); } return(true); }
/// <summary> /// 清楚告警,此处没用到 /// </summary> /// <param name="sourceomc"></param> /// <param name="obj"></param> /// <param name="name"></param> /// <param name="cleartime"></param> /// <returns></returns> public bool ClearNMAlarm(string sourceomc, string obj, string name, DateTime cleartime) { try { TKAlarm tkalarm = null; lock (m_NMAlarms) { if (!m_NMAlarms.ContainsKey(sourceomc)) { return(false); } if (!m_NMAlarms[sourceomc].ContainsKey(obj)) { return(false); } if (!m_NMAlarms[sourceomc][obj].ContainsKey(name)) { return(false); } NMAlarm a = m_NMAlarms[sourceomc][obj][name]; if (a.TKSn == "" || a.ClearTime != "") { return(false); //告警已经恢复,恢复动作无效 } a.ClearTime = cleartime.ToString(); a.ActiveTable = UniteTKActiveTable; a.ResumeTable = UniteTKResumeTable; tkalarm = ConvertNMToTKAlarm(a); try { SqlHelper.ExecuteNonQuery(Connstr, CommandType.Text, a.GetSql()); } catch (Exception ex) { // 存储网管告警出异常不再发出告警 // 不继续抛出告警, 允许继续往服务器发送告警 SendLog(ex.ToString()); } } try { if (tkalarm != null) { SendAlarm(tkalarm); } } catch (Exception ex) { SendLog(ex.ToString()); return(false); } } catch (Exception ex) { SendLog(ex.ToString()); return(false); } return(true); }