1 feat(mqtt): 实现MQTT服务器状态管理与事件系统
2
3 1. 在MqttServer和MqttServerDto模型中添加IsConnect属性,用于跟踪连接状态
4 2. 重构MqttManagementService服务,使用事件驱动方式管理服务器状态变化
5 3. 实现MqttServerChangedEventArgs事件参数类,支持区分不同变更类型
6 4. 在IEventService中添加OnMqttServerChanged事件,实现事件通知机制
7 5. 优化数据存储结构,将MqttServers从ObservableCollection改为ObservableDictionary
8 6. 更新MqttServiceManager以正确处理连接状态和事件触发
9 7. 在WPF层更新UI以响应服务器状态变化
10 8. 删除不再需要的Helper类(DataServicesHelper, MessageHelper, SiemensHelper)
11 9. 在NLog配置中添加调试器输出目标以便调试
12 10. 完善VariableHistoryViewModel防止空引用异常
This commit is contained in:
@@ -41,7 +41,11 @@ public class MqttDataService : IMqttDataService
|
||||
try
|
||||
{
|
||||
// 加载MQTT服务器数据
|
||||
_dataStorageService.MqttServers = _mapper.Map<ObservableCollection<MqttServerItemViewModel>>(_appDataStorageService.MqttServers.Values);
|
||||
foreach (var mqttServerDto in _appDataStorageService.MqttServers.Values)
|
||||
{
|
||||
_dataStorageService.MqttServers.TryAdd(mqttServerDto.Id,_mapper.Map<MqttServerItemViewModel>(mqttServerDto));
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -61,7 +65,7 @@ public class MqttDataService : IMqttDataService
|
||||
dto.Id = id;
|
||||
|
||||
var mqttServerItem = _mapper.Map<MqttServerItemViewModel>(dto);
|
||||
_dataStorageService.MqttServers.Add(mqttServerItem);
|
||||
_dataStorageService.MqttServers.Add(mqttServerItem.Id,mqttServerItem);
|
||||
|
||||
return mqttServerItem;
|
||||
}
|
||||
@@ -82,7 +86,7 @@ public class MqttDataService : IMqttDataService
|
||||
public async Task<bool> DeleteMqttServer(MqttServerItemViewModel mqttServer)
|
||||
{
|
||||
await _mqttAppService.DeleteMqttServerAsync(mqttServer.Id);
|
||||
_dataStorageService.MqttServers.Remove(mqttServer);
|
||||
_dataStorageService.MqttServers.Remove(mqttServer.Id);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user