Files
DMS/DMS.Application/Services/Processors/AlarmProcessor.cs
2025-09-13 12:30:12 +08:00

39 lines
1.3 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using DMS.Application.Interfaces;
using DMS.Application.Models;
using Microsoft.Extensions.Logging;
namespace DMS.Application.Services.Processors
{
public class AlarmProcessor : IVariableProcessor
{
private readonly IAlarmService _alarmService;
private readonly ILogger<AlarmProcessor> _logger;
public AlarmProcessor(IAlarmService alarmService, ILogger<AlarmProcessor> logger)
{
_alarmService = alarmService;
_logger = logger;
}
public async Task ProcessAsync(VariableContext context)
{
try
{
// 检查是否触发报警
bool isAlarmTriggered = _alarmService.CheckAlarm(context.Data);
if (isAlarmTriggered)
{
_logger.LogInformation($"变量 {context.Data.Name} 触发了报警。");
// 报警逻辑已经通过事件处理,这里可以添加其他处理逻辑(如记录到数据库)
}
}
catch (Exception ex)
{
_logger.LogError(ex, $"处理变量 {context.Data.Name} 的报警时发生错误: {ex.Message}");
}
// 不设置 context.IsHandled = true让其他处理器继续处理
}
}
}