using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Messaging; using Microsoft.Extensions.Logging; using PMSWPF.Data.Repositories; using PMSWPF.Enums; using PMSWPF.Extensions; using PMSWPF.Helper; using PMSWPF.Message; using PMSWPF.Models; namespace PMSWPF.Services; public partial class DataServices:ObservableRecipient,IRecipient { private readonly ILogger _logger; [ObservableProperty] private List _devices = new List(); [ObservableProperty] private List menuBeans = new List(); private readonly DeviceRepository _deviceRepository; private readonly MenuRepository _menuRepository; public event Action> OnDeviceListChanged; public event Action> OnMenuListChanged; partial void OnDevicesChanged(List devices) { OnDeviceListChanged?.Invoke(devices); } partial void OnMenuBeansChanged(List menuBeans) { OnMenuListChanged?.Invoke(menuBeans); } public DataServices(ILogger logger ) { _logger = logger; IsActive = true; _deviceRepository = new DeviceRepository(); _menuRepository = new MenuRepository(); } public async void Receive(LoadMessage message) { if (!(message.Value is LoadTypes)) throw new ArgumentException($"接受到的加载类型错误:{message.Value}"); try { switch ((LoadTypes)message.Value ) { case LoadTypes.Devices: Devices= await _deviceRepository.GetAll(); break; case LoadTypes.Menu: MenuBeans= await _menuRepository.GetMenu(); break; } } catch (Exception e) { NotificationHelper.ShowMessage($"加载数据出现了错误:{e.Message}"); _logger.LogError($"加载数据出现了错误:{e.Message}"); } } }