| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- using Device;
- using Mapster;
- using ServiceBase;
- namespace EEMSMain.Service;
- internal class UIProvider(DeviceCollection deviceCollection) : IUIProvider
- {
- Task<bool> IUIProvider.InsertNewDevice(DeviceInfo deviceInfo)
- {
- DeviceInfo_VM device = deviceInfo.Adapt<DeviceInfo_VM>();
- device.IsConnected = true;
- if (device.Guid is null)
- return Task.FromResult(true);
- App.Current.Dispatcher.Invoke(() =>
- {
- deviceCollection.NewDeviceList[device.Guid.Value] = device;
- });
- return Task.FromResult(true);
- }
- Task<bool> IUIProvider.UpdateDevice(DeviceInfo deviceInfo)
- {
- DeviceInfo_VM device = deviceInfo.Adapt<DeviceInfo_VM>();
- if (device.Guid is null)
- return Task.FromResult(true);
- DeviceData_VM deviceData = new()
- {
- DeviceId = device.Guid.Value,
- DeviceModel = device.DeviceModel,
- OtherInfo = [],
- Alarms = []
- };
- App.Current.Dispatcher.Invoke(() =>
- {
- deviceCollection.DeviceDataList[device.Guid.Value] = deviceData;
- deviceCollection.DeviceList[device.Guid.Value] = device;
- });
- return Task.FromResult(true);
- }
- Task<bool> IUIProvider.UpdateDeviceList(IEnumerable<DeviceInfo> device)
- {
- return Task.FromResult(true);
- }
- Task<bool> IUIProvider.UpdateRealtimeData(Guid guid, Dictionary<string, object> data)
- {
- if (!deviceCollection.DeviceDataList.TryGetValue(guid, out DeviceData_VM? deviceData) || deviceData is null)
- return Task.FromResult(false);
- App.Current.Dispatcher?.Invoke(() =>
- {
- deviceData.OtherInfo.Clear();
- foreach (var item in data)
- {
- switch (item.Key)
- {
- case "Status":
- deviceData.DeviceStatus = item.Value.ToString();
- break;
- default:
- deviceData.OtherInfo[item.Key] = item.Value;
- break;
- }
- }
- });
- return Task.FromResult(true);
- }
- Task<bool> IUIProvider.UpdateRecipeInfo(Recipe recipeInfo)
- {
- if (!deviceCollection.DeviceDataList.TryGetValue(recipeInfo.DeviceId, out DeviceData_VM? deviceData) || deviceData is null)
- return Task.FromResult(false);
- App.Current.Dispatcher?.Invoke(() =>
- {
- deviceData.RecipeInfo = recipeInfo.Adapt<RecipeInfo_VM>();
- });
- return Task.FromResult(true);
- }
- Task<bool> IUIProvider.UpdateAlarm(IEnumerable<Alarm> alarm)
- {
- if (alarm is null || alarm.FirstOrDefault() is not Alarm first)
- return Task.FromResult(true);
- if (!deviceCollection.DeviceDataList.TryGetValue(first.DeviceID, out DeviceData_VM? deviceData) || deviceData is null)
- return Task.FromResult(false);
- App.Current.Dispatcher?.Invoke(() =>
- {
- deviceData.Alarms ??= [];
- deviceData.Alarms.Clear();
- foreach (var item in alarm)
- deviceData.Alarms.Add(item.Adapt<Alarm_VM>());
- });
- return Task.FromResult(true);
- }
- }
|