/// <summary> /// 处理传感器采集超时和评分告警 /// </summary> /// <param name="warningmsg"></param> /// <returns></returns> private int SensorOrGradeWarningHandler(WarnningMsg warningmsg) { var request = JsonConvert.DeserializeObject <RequestWarningReceivedMessage>(warningmsg.Msg); if (request == null) { return(0); } try { // 检测消息中“DeviceId”是否存在于数据库,并限制告警等级 if (!DbAccessor.Exists(request.DeviceTypeId, request.DeviceId)) { // 日志记录未正确插入数据库中的数据 this.logger.Info("数据库insert操作失败:"); string errLog = string.Format( "接收到的告警数据: WarningTypeId={0}, StructId={1}, DeviceTypeId={2}, DeviceId={3}, WarningContent={4}, WarningTime={5}", request.WarningTypeId, request.StructId, request.DeviceTypeId, request.DeviceId, request.WarningContent, request.WarningTime); this.logger.Error(errLog); return(0); } // 将告警消息保存至数据库 int rowcount; if (_toClient == "true") { rowcount = DbAccessor.SaveWarningMsg(request, 4, 3); } else { rowcount = DbAccessor.SaveWarningMsg(request, 1, 1); } // rowcount = DbAccessor.SaveWarningMsg(request); // Process message Console.WriteLine(); Console.WriteLine("Text message received : WarningTypeId={0}; WarningTime={1}", request.WarningTypeId, request.WarningTime.ToString("yyyy-MM-dd HH:mm:ss.fff")); Console.WriteLine("Source application : {0}", warningmsg.Sender); return(rowcount); } catch (Exception ex) { // 日志记录未正确插入数据库中的数据 this.logger.Info("数据库insert操作失败:"); string errLog = string.Format( "接收到的告警数据: WarningTypeId={0}, StructId={1}, DeviceTypeId={2}, DeviceId={3}, WarningContent={4}, WarningTime={5}", request.WarningTypeId, request.StructId, request.DeviceTypeId, request.DeviceId, request.WarningContent, request.WarningTime); this.logger.Error(errLog, ex); return(0); } }