From 46ed7419f7e070609103b2d8d34dd7a2b6346e1c Mon Sep 17 00:00:00 2001 From: wanggang <76527413@qq.com> Date: Wed, 16 Oct 2019 18:05:46 +0800 Subject: [PATCH] update Former-commit-id: 76d02df9a2890f18f4e74a1bdbc7c43b9f47b357 --- .../IoT.Shared/Application/Models/Methods.cs | 4 ++-- .../DeviceServices/BaseDeviceService.cs | 10 +++++++++ .../DeviceServices/FBee/FBeeService.cs | 22 +++++++++---------- .../DeviceServices/Onvif/OnvifService.cs | 4 ++-- .../SerialPort/SerialPortService.cs | 2 +- 5 files changed, 26 insertions(+), 16 deletions(-) diff --git a/projects/IoT.Shared/Application/Models/Methods.cs b/projects/IoT.Shared/Application/Models/Methods.cs index 9fc6be39..0d21a44f 100644 --- a/projects/IoT.Shared/Application/Models/Methods.cs +++ b/projects/IoT.Shared/Application/Models/Methods.cs @@ -44,13 +44,13 @@ public const string EditNodeResponse = nameof(EditNodeResponse); public const string EditDeviceRequest = nameof(EditDeviceRequest); - public const string EditDeviceResponse = nameof(EditDeviceResponse); + public const string EditDevice = nameof(EditDevice); public const string DeleteDeviceRequest = nameof(DeleteDeviceRequest); public const string DeleteDeviceResponse = nameof(DeleteDeviceResponse); public const string EditDataRequest = nameof(EditDataRequest); - public const string EditDataResponse = nameof(EditDataResponse); + public const string EditData = nameof(EditData); public const string DeleteDataRequest = nameof(DeleteDataRequest); public const string DeleteDataResponse = nameof(DeleteDataResponse); diff --git a/projects/IoTNode/DeviceServices/BaseDeviceService.cs b/projects/IoTNode/DeviceServices/BaseDeviceService.cs index 71292b71..13eedc58 100644 --- a/projects/IoTNode/DeviceServices/BaseDeviceService.cs +++ b/projects/IoTNode/DeviceServices/BaseDeviceService.cs @@ -1,6 +1,7 @@ using Application.Domain.Entities; using Application.Models; using Infrastructure.Data; +using Infrastructure.Events; using Infrastructure.Extensions; using IoT.Shared.Services; using Microsoft.Extensions.Configuration; @@ -59,6 +60,15 @@ namespace IoTNode.DeviceServices iotNodeClient.ClientToServer(method, data); } + public void SendDataToServer(Data data) + { + using var scope = _applicationServices.CreateScope(); + var iotNodeClient = scope.ServiceProvider.GetService(); + iotNodeClient.ClientToServer($"Edit{typeof(Data).Name}", data.To()); + var eventPubliser = scope.ServiceProvider.GetService(); + eventPubliser.Publish(new EntityUpdatedEvent(data)); + } + public Product UpdateProduct(string productName, string productNumber, string path, string categoryNumber, string productIcon) { var scope = _applicationServices.CreateScope(); diff --git a/projects/IoTNode/DeviceServices/FBee/FBeeService.cs b/projects/IoTNode/DeviceServices/FBee/FBeeService.cs index dca75315..313ae05e 100644 --- a/projects/IoTNode/DeviceServices/FBee/FBeeService.cs +++ b/projects/IoTNode/DeviceServices/FBee/FBeeService.cs @@ -134,7 +134,7 @@ namespace IoTNode.DeviceServices.FBee device.Ip = ip; deviceRepo.SaveChanges(); var deviceDto = device.To(); - this.SendToServer(Methods.EditDeviceResponse, deviceDto); + this.SendToServer(Methods.EditDevice, deviceDto); } var gateways = deviceRepo.ReadOnlyTable().Where(o => o.Product.Name == "FBee网关").ToList(); foreach (var gateway in gateways) @@ -503,10 +503,10 @@ namespace IoTNode.DeviceServices.FBee device.AddorUpdateData(device.CreateData(Keys.ZoneType, zoneType, DeviceDataType.String, Keys.ZoneType, hidden: true)); deviceRepo.SaveChanges(); var deviceDto = device.To(); - this.SendToServer(Methods.EditDeviceResponse, deviceDto); + this.SendToServer(Methods.EditDevice, deviceDto); if (new int[] { 0x0002, 0x0009, 0x0081, 0x0202, 0x0220, 0x0051 }.Contains(deviceId)) { - this.SendToServer(Methods.EditDataResponse, device.Data.FirstOrDefault(o => o.Key == Keys.State).To()); + this.SendDataToServer(device.Data.FirstOrDefault(o => o.Key == Keys.State)); } this.UpdateStatus(device); } @@ -665,7 +665,7 @@ namespace IoTNode.DeviceServices.FBee deviceRepo.SaveChanges(); foreach (var item in device.Data.Where(o => !o.Hidden)) { - this.SendToServer(Methods.EditDataResponse, item.To()); + this.SendDataToServer(item); } } else @@ -713,7 +713,7 @@ namespace IoTNode.DeviceServices.FBee { device.AddorUpdateData(device.CreateData(Keys.Brightness, ms.ReadByte(), DeviceDataType.Int, "亮度")); deviceRepo.SaveChanges(); - this.SendToServer(Methods.EditDataResponse, device.Data.FirstOrDefault(o => o.Key == Keys.Brightness).To()); + this.SendDataToServer(device.Data.FirstOrDefault(o => o.Key == Keys.Brightness)); } else { @@ -758,7 +758,7 @@ namespace IoTNode.DeviceServices.FBee { device.AddorUpdateData(device.CreateData(Keys.Hue, ms.ReadByte(), DeviceDataType.Int, "色调")); deviceRepo.SaveChanges(); - this.SendToServer(Methods.EditDataResponse, device.Data.FirstOrDefault(o => o.Key == Keys.Hue).To()); + this.SendDataToServer(device.Data.FirstOrDefault(o => o.Key == Keys.Hue)); } else { @@ -789,7 +789,7 @@ namespace IoTNode.DeviceServices.FBee { device.AddorUpdateData(device.CreateData(Keys.Saturation, ms.ReadByte(), DeviceDataType.Int, "饱和度")); deviceRepo.SaveChanges(); - this.SendToServer(Methods.EditDataResponse, device.Data.FirstOrDefault(o => o.Key == Keys.Saturation).To()); + this.SendDataToServer(device.Data.FirstOrDefault(o => o.Key == Keys.Saturation)); } else { @@ -898,8 +898,8 @@ namespace IoTNode.DeviceServices.FBee gateway.AddorUpdateData(gateway.CreateData(Keys.Version, version, DeviceDataType.String, "版本")); gateway.AddorUpdateData(gateway.CreateData(Keys.DeviceCount, ms.ReadByte(), DeviceDataType.Int, "设备数量")); gatewayRepo.SaveChanges(); - this.SendToServer(Methods.EditDataResponse, gateway.Data.FirstOrDefault(o => o.Key == Keys.Version).To()); - this.SendToServer(Methods.EditDataResponse, gateway.Data.FirstOrDefault(o => o.Key == Keys.DeviceCount).To()); + this.SendDataToServer(gateway.Data.FirstOrDefault(o => o.Key == Keys.Version)); + this.SendDataToServer(gateway.Data.FirstOrDefault(o => o.Key == Keys.DeviceCount)); ms.ReadByte(); ms.ReadByte(); ms.ReadByte(); @@ -951,7 +951,7 @@ namespace IoTNode.DeviceServices.FBee { device.AddorUpdateData(device.CreateData(Keys.ColorTemperature, ms.ReadInt(), DeviceDataType.Int, "色温")); deviceRepo.SaveChanges(); - this.SendToServer(Methods.EditDataResponse, device.Data.FirstOrDefault(o => o.Key == Keys.ColorTemperature).To()); + this.SendDataToServer(device.Data.FirstOrDefault(o => o.Key == Keys.ColorTemperature)); } else { @@ -1291,7 +1291,7 @@ namespace IoTNode.DeviceServices.FBee deviceRepo.SaveChanges(); foreach (var item in device.Data.Where(o => !o.Hidden)) { - this.SendToServer(Methods.EditDataResponse, item.To()); + this.SendDataToServer(item); } } } diff --git a/projects/IoTNode/DeviceServices/Onvif/OnvifService.cs b/projects/IoTNode/DeviceServices/Onvif/OnvifService.cs index 4f4f9e74..f39eadc3 100644 --- a/projects/IoTNode/DeviceServices/Onvif/OnvifService.cs +++ b/projects/IoTNode/DeviceServices/Onvif/OnvifService.cs @@ -198,10 +198,10 @@ namespace IoTNode.DeviceServices.Onvif } deviceRepo.SaveChanges(); var deviceDto = device.To(); - this.SendToServer(Methods.EditDeviceResponse, deviceDto); + this.SendToServer(Methods.EditDevice, deviceDto); foreach (var item in device.Data.Where(o => !o.Hidden)) { - this.SendToServer(Methods.EditDataResponse, item.To()); + this.SendDataToServer(item); } } } diff --git a/projects/IoTNode/DeviceServices/SerialPort/SerialPortService.cs b/projects/IoTNode/DeviceServices/SerialPort/SerialPortService.cs index 01d64bed..14606552 100644 --- a/projects/IoTNode/DeviceServices/SerialPort/SerialPortService.cs +++ b/projects/IoTNode/DeviceServices/SerialPort/SerialPortService.cs @@ -101,7 +101,7 @@ namespace IoTNode.DeviceServices.SerialPort foreach (var device in devices) { var deviceDto = device.To(); - this.SendToServer(Methods.EditDeviceResponse, deviceDto); + this.SendToServer(Methods.EditDevice, deviceDto); } } }