Files
DMS/DMS.WPF/ViewModels/MqttsViewModel.cs

181 lines
5.7 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 System.Collections.ObjectModel;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using DMS.Core.Enums;
using DMS.Services;
using DMS.WPF.Helper;
using DMS.WPF.Interfaces;
using DMS.WPF.Services;
using DMS.WPF.ViewModels.Items;
using Microsoft.Extensions.Logging;
using DMS.WPF.Views;
namespace DMS.WPF.ViewModels;
public partial class MqttsViewModel : ViewModelBase
{
private readonly DataServices _dataServices;
private readonly IDialogService _dialogService;
private readonly ILogger<MqttsViewModel> _logger;
[ObservableProperty]
private ObservableCollection<MqttServerItemViewModel> _mqtts;
// public ObservableCollection<Mqtt> Mqtts
// {
// get => _mqtts;
// set
// {
// if (_mqtts != null)
// {
// foreach (var mqtt in _mqtts)
// {
// mqtt.PropertyChanged -= Mqtt_PropertyChanged;
// }
// }
//
// SetProperty(ref _mqtts, value);
//
// if (_mqtts != null)
// {
// foreach (var mqtt in _mqtts)
// {
// mqtt.PropertyChanged += Mqtt_PropertyChanged;
// }
// }
// }
// }
[ObservableProperty]
private MqttServerItemViewModel _selectedMqtt;
public MqttsViewModel(
ILogger<MqttsViewModel> logger, IDialogService dialogService, DataServices dataServices
)
{
_logger = logger;
_dialogService = dialogService;
_dataServices = dataServices;
// if (_dataServices.Mqtts == null || _dataServices.Mqtts.Count == 0)
// {
// MessageHelper.SendLoadMessage(LoadTypes.Mqtts);
// }
// else
// {
// Mqtts = new ObservableCollection<Mqtt>(_dataServices.Mqtts);
// }
//
//
// _dataServices.OnMqttListChanged += ( mqtts) =>
// {
// Mqtts = new ObservableCollection<Mqtt>(mqtts);
// };
}
private async void Mqtt_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
// if (e.PropertyName == nameof(Mqtt.IsActive))
// {
// if (sender is Mqtt mqtt)
// {
// try
// {
// await _mqttRepository.UpdateAsync(mqtt);
// NotificationHelper.ShowSuccess($"MQTT: {mqtt.Name} 的启用状态已更新。");
// MessageHelper.SendLoadMessage(LoadTypes.Mqtts);
// }
// catch (Exception ex)
// {
// NotificationHelper.ShowError($"更新MQTT启用状态失败: {mqtt.Name} - {ex.Message}", ex);
// }
// }
// }
}
[RelayCommand]
public async void AddMqtt()
{
// try
// {
// var mqtt = await _dialogService.ShowAddMqttDialog();
// if (mqtt == null)
// {
// _logger.LogInformation("用户取消了添加MQTT操作。");
// return;
// }
//
// await _mqttRepository.AddAsync(mqtt);
// MessageHelper.SendLoadMessage(LoadTypes.Mqtts);
// MessageHelper.SendLoadMessage(LoadTypes.Menu);
// }
// catch (Exception e)
// {
// NotificationHelper.ShowError($"添加MQTT的过程中发生错误{e.Message}", e);
// }
}
[RelayCommand]
public async void DeleteMqtt()
{
// try
// {
// if (SelectedMqtt == null)
// {
// NotificationHelper.ShowError("你没有选择任何MQTT请选择MQTT后再点击删除");
// return;
// }
//
// string msg = $"确认要删除MQTT名为:{SelectedMqtt.Name}";
// var isDel = await _dialogService.ShowConfrimeDialog("删除MQTT", msg, "删除MQTT");
// if (isDel)
// {
// await _mqttRepository.DeleteAsync(SelectedMqtt);
// MessageHelper.SendLoadMessage(LoadTypes.Mqtts);
// MessageHelper.SendLoadMessage(LoadTypes.Menu);
// NotificationHelper.ShowSuccess($"删除MQTT成功,MQTT名{SelectedMqtt.Name}");
// }
// }
// catch (Exception e)
// {
// NotificationHelper.ShowError($"删除MQTT的过程中发生错误{e.Message}", e);
// }
}
[RelayCommand]
public async void EditMqtt()
{
// try
// {
// if (SelectedMqtt == null)
// {
// NotificationHelper.ShowError("你没有选择任何MQTT请选择MQTT后再点击编辑");
// return;
// }
//
// var editMqtt = await _dialogService.ShowEditMqttDialog(SelectedMqtt);
// if (editMqtt != null)
// {
// var res = await _mqttRepository.UpdateAsync(editMqtt);
// MessageHelper.SendLoadMessage(LoadTypes.Mqtts);
// }
// }
// catch (Exception e)
// {
// NotificationHelper.ShowError($"编辑MQTT的过程中发生错误{e.Message}", e);
// }
}
/// <summary>
/// 导航到MQTT服务器详情页面。
/// </summary>
[RelayCommand]
private void NavigateToMqttDetail()
{
// if (SelectedMqtt == null)
// {
// NotificationHelper.ShowMessage("请选择一个MQTT服务器以查看详情。", NotificationType.Warning);
// return;
// }
// _navgatorServices.NavigateTo<MqttServerDetailView>(SelectedMqtt);
}
}