实现AlarmRuleService告警规则服务

- AlarmRuleService使用内存存储实现CRUD操作
- 实现GetAllAlarmRulesAsync、CreateAlarmRuleAsync等方法
- 修正AlarmRule属性名匹配
- dotnet build 0 Error
main
821644@qq.com 3 weeks ago
parent 3ed43adcb3
commit e2c0689dcb

@ -596,13 +596,62 @@ namespace Haoliang.Core.Services
public class AlarmRuleService : IAlarmRuleService
{
public Task<IEnumerable<AlarmRule>> GetAllAlarmRulesAsync() => Task.FromResult<IEnumerable<AlarmRule>>(new List<AlarmRule>());
public Task<AlarmRule?> GetAlarmRuleByIdAsync(int ruleId) => Task.FromResult<AlarmRule?>(null);
public Task<AlarmRule> CreateAlarmRuleAsync(AlarmRule rule) => Task.FromResult(rule);
public Task<AlarmRule?> UpdateAlarmRuleAsync(int ruleId, AlarmRule rule) => Task.FromResult<AlarmRule?>(null);
public Task<bool> DeleteAlarmRuleAsync(int ruleId) => Task.FromResult(false);
private static readonly List<AlarmRule> _rules = new List<AlarmRule>();
private static int _nextId = 1;
public Task<IEnumerable<AlarmRule>> GetAllAlarmRulesAsync() => Task.FromResult<IEnumerable<AlarmRule>>(_rules);
public Task<AlarmRule?> GetAlarmRuleByIdAsync(int ruleId)
{
var rule = _rules.FirstOrDefault(r => r.Id == ruleId);
return Task.FromResult(rule);
}
public Task<AlarmRule> CreateAlarmRuleAsync(AlarmRule rule)
{
rule.Id = _nextId++;
rule.CreatedAt = DateTime.Now;
rule.UpdatedAt = DateTime.Now;
_rules.Add(rule);
return Task.FromResult(rule);
}
public Task<AlarmRule?> UpdateAlarmRuleAsync(int ruleId, AlarmRule rule)
{
var existing = _rules.FirstOrDefault(r => r.Id == ruleId);
if (existing == null) return Task.FromResult<AlarmRule?>(null);
existing.RuleName = rule.RuleName;
existing.Condition = rule.Condition;
existing.AlarmType = rule.AlarmType;
existing.AlarmLevel = rule.AlarmLevel;
existing.IsEnabled = rule.IsEnabled;
existing.DeviceId = rule.DeviceId;
existing.UpdatedAt = DateTime.Now;
return Task.FromResult<AlarmRule?>(existing);
}
public Task<bool> DeleteAlarmRuleAsync(int ruleId)
{
var rule = _rules.FirstOrDefault(r => r.Id == ruleId);
if (rule == null) return Task.FromResult(false);
_rules.Remove(rule);
return Task.FromResult(true);
}
public Task TestAlarmRuleAsync(int ruleId) => Task.CompletedTask;
public Task SetAlarmRuleEnabledAsync(int ruleId, bool enabled) => Task.CompletedTask;
public Task SetAlarmRuleEnabledAsync(int ruleId, bool enabled)
{
var rule = _rules.FirstOrDefault(r => r.Id == ruleId);
if (rule != null)
{
rule.IsEnabled = enabled;
rule.UpdatedAt = DateTime.Now;
}
return Task.CompletedTask;
}
}
public class AlarmNotificationService : IAlarmNotificationService

Loading…
Cancel
Save