From e2c0689dcb437a89ef588c0f3ba4ad27b598f909 Mon Sep 17 00:00:00 2001 From: "821644@qq.com" <821644@qq.com> Date: Mon, 13 Apr 2026 12:19:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0AlarmRuleService=E5=91=8A?= =?UTF-8?q?=E8=AD=A6=E8=A7=84=E5=88=99=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - AlarmRuleService使用内存存储实现CRUD操作 - 实现GetAllAlarmRulesAsync、CreateAlarmRuleAsync等方法 - 修正AlarmRule属性名匹配 - dotnet build 0 Error --- Haoliang.Core/Services/StubServices.cs | 61 +++++++++++++++++++++++--- 1 file changed, 55 insertions(+), 6 deletions(-) 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