diff --git a/Haoliang.Core/Services/StubServices.cs b/Haoliang.Core/Services/StubServices.cs index 378e47f..737e720 100644 --- a/Haoliang.Core/Services/StubServices.cs +++ b/Haoliang.Core/Services/StubServices.cs @@ -596,13 +596,62 @@ namespace Haoliang.Core.Services public class AlarmRuleService : IAlarmRuleService { - public Task> GetAllAlarmRulesAsync() => Task.FromResult>(new List()); - public Task GetAlarmRuleByIdAsync(int ruleId) => Task.FromResult(null); - public Task CreateAlarmRuleAsync(AlarmRule rule) => Task.FromResult(rule); - public Task UpdateAlarmRuleAsync(int ruleId, AlarmRule rule) => Task.FromResult(null); - public Task DeleteAlarmRuleAsync(int ruleId) => Task.FromResult(false); + private static readonly List _rules = new List(); + private static int _nextId = 1; + + public Task> GetAllAlarmRulesAsync() => Task.FromResult>(_rules); + + public Task GetAlarmRuleByIdAsync(int ruleId) + { + var rule = _rules.FirstOrDefault(r => r.Id == ruleId); + return Task.FromResult(rule); + } + + public Task CreateAlarmRuleAsync(AlarmRule rule) + { + rule.Id = _nextId++; + rule.CreatedAt = DateTime.Now; + rule.UpdatedAt = DateTime.Now; + _rules.Add(rule); + return Task.FromResult(rule); + } + + public Task UpdateAlarmRuleAsync(int ruleId, AlarmRule rule) + { + var existing = _rules.FirstOrDefault(r => r.Id == ruleId); + if (existing == null) return Task.FromResult(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(existing); + } + + public Task 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