/// <summary> /// 设备同步通知 /// </summary> /// <param name="device"></param> /// <param name="state">0:删除,1:更新: 2:新增</param> private void SendDatachangeNotify(IPDeviceInfo device, int state) { if (device.IPDeviceCode > 0) { using (var db = new AllInOneContext.AllInOneContext()) { //哨位台挂在哨位节点上面 var deviceOrg = db.Organization.FirstOrDefault(t => t.OrganizationId.Equals(device.OrganizationId)); var service = db.ServiceInfo.Include(t => t.ServerInfo).FirstOrDefault(t => t.ServiceTypeId.Equals(Guid.Parse("A0002016-E009-B019-E001-ABCD11300206")) && (t.ServerInfo.OrganizationId.Equals(deviceOrg.ParentOrganizationId) || t.ServerInfo.OrganizationId.Equals(device.OrganizationId))); if (service != null) { PAPS.Data.DeviceInfoChange changeInfo = new PAPS.Data.DeviceInfoChange() { DeviceCode = device.IPDeviceCode, DeviceId = device.IPDeviceInfoId, DevicetypeId = device.DeviceTypeId, Operater = state }; try { new ASCSApi(service).NotifyDeviceInfoChange(changeInfo); } catch (Exception ex) { _logger.LogError("设备变更通知异常{0}\r\rStackTrace:{1}", ex.Message, ex.StackTrace); } } } } }
public IActionResult Remove(Guid id) { using (var db = new AllInOneContext.AllInOneContext()) { IPDeviceInfo deleteObj = db.IPDeviceInfo.FirstOrDefault(t => t.IPDeviceInfoId.Equals(id)); if (deleteObj == null) { return(NotFound()); } db.IPDeviceInfo.Remove(deleteObj); db.SaveChanges(); SendDatachangeNotify(deleteObj, 0); } return(NoContent()); }
public IActionResult Remove(Guid id) { using (var db = new AllInOneContext.AllInOneContext()) { using (var transaction = db.Database.BeginTransaction()) { try { MonitorySite ms = db.MonitorySite.FirstOrDefault(t => t.MonitorySiteId.Equals(id)); if (ms == null) { return(NotFound()); } Camera camera = db.Set <Camera>().First(t => t.CameraId.Equals(ms.CameraId)); IPDeviceInfo cameraDevice = db.IPDeviceInfo.First(t => t.IPDeviceInfoId.Equals(camera.IPDeviceId)); db.MonitorySite.Remove(ms); db.Set <Camera>().Remove(camera); //db.IPDeviceInfo.Remove(cameraDevice); var deleteStatusId = Guid.Parse("a0002016-e009-b019-e001-abcd13800005"); cameraDevice.StatusId = deleteStatusId; //Remove AlarmSetting List <Guid> alarmSourceIds = new List <Guid>(); alarmSourceIds.Add(cameraDevice.IPDeviceInfoId); AlarmSettingUtility.RemoveAlarmSetting(db, alarmSourceIds); db.SaveChanges(); transaction.Commit(); //推送到dcp,数据同步。。。。。。 return(new NoContentResult()); } catch (DbUpdateException dbEx) { transaction.Rollback(); _logger.LogError("删除监控点异常:Message:{0}\r\n,StackTrace:{1}", dbEx.Message, dbEx.StackTrace); return(BadRequest(new ApplicationException { ErrorCode = "DBUpdate", ErrorMessage = "数据保存异常:" + dbEx.Message })); } catch (Exception ex) { _logger.LogError("删除监控点异常:Message:{0}\r\n,StackTrace:{1}", ex.Message, ex.StackTrace); return(BadRequest(new ApplicationException { ErrorCode = "Unknown", ErrorMessage = ex.Message })); } } } }
public IActionResult Update([FromBody] MonitorySite ms) { if (ms == null) { return(BadRequest("MonitorySite object can not be null!")); } if (ExistsName(ms.MonitorySiteName, ms.OrganizationId, ms.MonitorySiteId)) { return(BadRequest("MonitorySite name has been used!")); } using (var db = new AllInOneContext.AllInOneContext()) { try { db.MonitorySite.Update(ms); IPDeviceInfo cameraDevice = db.IPDeviceInfo.FirstOrDefault(t => t.IPDeviceInfoId.Equals(ms.Camera.IPDeviceId)); if (cameraDevice != null) { cameraDevice.IPDeviceName = ms.MonitorySiteName; db.IPDeviceInfo.Update(cameraDevice); } db.SaveChanges(); // //推送到dcp,数据同步。。。。。 return(NoContent()); } catch (DbUpdateException dbEx) { _logger.LogError("更新监控点异常:Message:{0}\r\n,StackTrace:{1}", dbEx.Message, dbEx.StackTrace); return(BadRequest(new ApplicationException { ErrorCode = "DBUpdate", ErrorMessage = "数据保存异常:" + dbEx.Message })); } catch (Exception ex) { _logger.LogError("更新监控点异常:Message:{0}\r\n,StackTrace:{1}", ex.Message, ex.StackTrace); return(BadRequest(new ApplicationException { ErrorCode = "Unknown", ErrorMessage = ex.Message })); } } }
public IActionResult Add([FromBody] IPDeviceInfo deviceInfo) { if (deviceInfo == null) { return(BadRequest("IPDeviceInfo object can not be null!")); } if (ExistsName(deviceInfo.IPDeviceName, deviceInfo.OrganizationId, deviceInfo.IPDeviceInfoId)) { return(BadRequest("IPDeviceInfo name has been used!")); } using (var db = new AllInOneContext.AllInOneContext()) { try { deviceInfo.Modified = DateTime.Now; deviceInfo.IPDeviceCode = NewIpdeviceCode(db, deviceInfo.OrganizationId); db.IPDeviceInfo.Add(deviceInfo); db.SaveChanges(); // return CreatedAtRoute("GetById",new { id = deviceInfo.DeviceInfoId }, deviceInfo); SendDatachangeNotify(deviceInfo, 2); return(CreatedAtAction("", deviceInfo)); } catch (DbUpdateException dbEx) { _logger.LogError("添加设备异常:Message:{0}\r\n,StackTrace:{1}", dbEx.Message, dbEx.StackTrace); return(BadRequest(new ApplicationException { ErrorCode = "DBUpdate", ErrorMessage = "数据保存异常:" + dbEx.Message })); } catch (Exception ex) { _logger.LogError("添加设备异常:Message:{0}\r\n,StackTrace:{1}", ex.Message, ex.StackTrace); return(BadRequest(new ApplicationException { ErrorCode = "Unknown", ErrorMessage = ex.Message })); } } }
public static void Main(string[] args) { AlarmMainframe amf = new AlarmMainframe(); IPDeviceInfo amfDeviceInfo = new IPDeviceInfo() { IPDeviceCode = 1, DeviceTypeId = Guid.Parse("a0002016-e009-b019-e001-abcd11000003"), Modified = DateTime.Now, ModifiedByUserId = Guid.Parse("609955c4-7f32-308b-5343-2eb3ebf373ea"), IPDeviceName = "报警主机12", OrganizationId = Guid.Parse("b31f22c1-bcd8-4b5a-ad5b-70760a1a9d74"), }; amf.AlarmMainframeId = Guid.NewGuid(); amf.DeviceInfo = amfDeviceInfo; List <AlarmPeripheral> aps = new List <AlarmPeripheral>(); var alarmDevice1 = new IPDeviceInfo() { IPDeviceInfoId = Guid.NewGuid(), ModifiedByUserId = Guid.Parse("609955c4-7f32-308b-5343-2eb3ebf373ea"), IPDeviceName = "报警主机12", OrganizationId = Guid.Parse("b31f22c1-bcd8-4b5a-ad5b-70760a1a9d74"), DeviceTypeId = Guid.Parse("a0002016-e009-b019-e001-abcd11000005"), }; aps.Add(new AlarmPeripheral() { AlarmChannel = 1, AlarmDevice = alarmDevice1, DefendArea = 1, AlarmPeripheralId = Guid.NewGuid(), AlarmMainframeId = amf.AlarmMainframeId, AlarmTypeId = Guid.Parse("a0002016-e009-b019-e001-ab1100001103"), }); amf.AlarmPeripherals = aps; Console.WriteLine(JsonConvert.SerializeObject(amf)); Console.ReadLine(); }
public IActionResult Remove(Guid id) { using (var db = new AllInOneContext.AllInOneContext()) { try { AlarmPeripheral editObj = db.AlarmPeripheral.FirstOrDefault(s => s.AlarmPeripheralId.Equals(id)); if (editObj == null || !editObj.AlarmPeripheralId.Equals(id)) { return(NotFound()); } IPDeviceInfo alarmDevice = db.IPDeviceInfo.First(s => s.IPDeviceInfoId.Equals(editObj.AlarmDeviceId)); db.AlarmPeripheral.Remove(editObj); db.IPDeviceInfo.Remove(alarmDevice); db.SaveChanges(); return(NoContent()); } catch (Exception ex) { _logger.LogError("删除报警外设异常:Message:{0}\r\nStackTrace:{0}", ex.Message, ex.StackTrace); return(BadRequest(ex)); } } }