private void 设置颜色(E健康状态 __状态) { switch (__状态) { case E健康状态.优: this.out健康状态标题.BackColor = Color.YellowGreen; this.out健康状态.ForeColor = Color.YellowGreen; break; case E健康状态.良: this.out健康状态标题.BackColor = Color.FromArgb(38, 164, 221); this.out健康状态.ForeColor = Color.FromArgb(38, 164, 221); break; case E健康状态.中: this.out健康状态标题.BackColor = Color.Orange; this.out健康状态.ForeColor = Color.Orange; break; case E健康状态.差: this.out健康状态标题.BackColor = Color.Red; this.out健康状态.ForeColor = Color.Red; break; default: throw new ArgumentOutOfRangeException(); } }
public void 初始化(List <M上报告警> __未清除告警, DateTime __启动时间, Func <E健康状态> __设置健康状态 = null) { 启动时间 = __启动时间; _设置健康状态 = __设置健康状态; this.健康状态 = E健康状态.优; this.状态开始时间 = DateTime.Now; if (__未清除告警 != null && __未清除告警.Count > 0) { _待处理问题.AddRange(__未清除告警); 计算健康状态(true); } else { 计算健康状态(false); } }
private void 计算健康状态(bool _待处理问题数变化) { var __新状态 = E健康状态.优; if (_设置健康状态 == null) { if (_待处理问题.Exists(q => q.重要性 == E重要性.紧急)) { __新状态 = E健康状态.差; } else if (_待处理问题.Exists(q => q.重要性 == E重要性.重要)) { __新状态 = E健康状态.中; } else if (_待处理问题.Exists(q => q.重要性 == E重要性.次要)) { __新状态 = E健康状态.良; } } else { __新状态 = _设置健康状态(); } if (__新状态 != this.健康状态) { //var __旧状态 = this.健康状态; this.健康状态 = __新状态; this.状态开始时间 = DateTime.Now; On健康状态变化(查询概要状态()); return; } if (_待处理问题数变化) { On健康状态变化(查询概要状态()); } }