/// <summary> /// 将monitorysite转发成CameraView对象 /// </summary> /// <param name="ms"></param> /// <returns></returns> public static CameraView ToCameraView(this MonitorySite ms) { var cam = ms.Camera; CameraView view = new CameraView() { Status = cam.IPDevice.Status != null ? cam.IPDevice.Status.MappingCode : "0", CameraId = cam.CameraId, IPDeviceId = cam.IPDeviceId, EncoderChannel = cam.EncoderChannel, CameraName = ms.MonitorySiteName, CameraNo = cam.CameraNo, DeviceType = cam.IPDevice.DeviceType.SystemOptionName, EncoderInfo = new EncoderInfo() { EncoderType = cam.Encoder.EncoderType.EncoderCode, EndPoints = cam.Encoder.DeviceInfo.EndPoints, Password = cam.Encoder.DeviceInfo.Password, User = cam.Encoder.DeviceInfo.UserName }, VideoForwardInfo = new ViewModel.ServiceInfo() { EndPoints = cam.VideoForward.EndPoints, User = cam.VideoForward.Username, Password = cam.VideoForward.Password } }; return(view); }
/// <summary> /// 根据组织机构获取查勤点 /// </summary> /// <param name="organizationId"></param> /// <returns></returns> public static MonitorySite GetMonitorySiteByOrganizationId(Guid organizationId, AllInOneContext.AllInOneContext db) { MonitorySite monitorySite = db.MonitorySite .FirstOrDefault(p => p.OrganizationId.Equals(organizationId) && p.IsDutycheckSite == true); return(monitorySite); }
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 })); } } } }
/// <summary> /// 获取查勤点日志 /// </summary> private static DutyCheckLog GetSiteLog(Guid organizationId, TimePeriod tp, MonitorySite monitorPoint, Guid dayPeriodId) { return(new DutyCheckLog { DutyCheckLogId = Guid.NewGuid(), TimePeriod = tp, //DutyCheckSiteSchedule = dss, //PlanDate = time, //DutyCheckStaffId = dss.CheckManId, OrganizationId = organizationId, StatusId = new Guid("361ADFE9-E58A-4C88-B191-B742CC212443"), //未开始 RecordTypeId = new Guid("359A58FA-0BAB-45A3-ACAF-98EB73228B95"), //网络查勤 DutyCheckSiteSchedule = new DutyCheckSiteSchedule { CheckDutySiteId = monitorPoint.MonitorySiteId, }, DayPeriodId = dayPeriodId }); }
public IActionResult Add([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.Add(ms); //将encoder ip保存到camera var encoder = db.Encoder.Include(t => t.DeviceInfo).FirstOrDefault(t => t.EncoderId.Equals(ms.Camera.EncoderId)); if (encoder != null) { ms.Camera.IPDevice.EndPointsJson = encoder.DeviceInfo.EndPointsJson; } db.SaveChanges(); //return CreatedAtRoute("GetById", new { id = ms.MonitorySiteId }, ms); //推送到dcp,数据同步 return(CreatedAtAction("", ms)); } 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 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 GetMonitorySiteByCameraID(Guid cameraId) { try { using (var db = new AllInOneContext.AllInOneContext()) { List <MonitorySite> monitorysites = GetAllMonitorysite(db); MonitorySite ms = monitorysites.FirstOrDefault(p => p.CameraId.Equals(cameraId)); return(new ObjectResult(ms)); } } catch (Exception ex) { _logger.LogError("GetMonitorySiteByCameraID:Message:{0}\r\n,StackTrace:{1}", ex.Message, ex.StackTrace); return(BadRequest(new ApplicationException { ErrorCode = "Unknown", ErrorMessage = ex.Message })); } }
/// <summary> /// 自动匹配该组织节点下的摄像机数据 /// </summary> /// <param name="model"></param> /// <param name="db"></param> private static bool CompletionData(DutyGroupSchedule model, AllInOneContext.AllInOneContext db) { bool isCompleted = false; foreach (DutyGroupScheduleDetail dgsd in model.DutyGroupScheduleDetails) { foreach (DutyCheckSiteSchedule dcss in dgsd.CheckDutySiteSchedule) { MonitorySite ms = DutyGroupScheduleHelper.GetMonitorySiteByOrganizationId(dcss.SiteOrganizationId.Value, db); if (ms != null) { dcss.CheckDutySiteId = ms.MonitorySiteId; } else { isCompleted = true; } } } return(isCompleted); }
/// <summary> ///随机获取该组织机构下的一个监控点 /// </summary> /// <param name="organizationId"></param> /// <returns></returns> private CameraView GetCameraView(Guid?organizationId, AllInOneContext.AllInOneContext db, DutyCheckLog log) { CameraView monitorySite = null; if (organizationId == null) { return(monitorySite); } //获取组织机构下所有的监控点View Organization org = db.Organization .Include(t => t.Center) .FirstOrDefault(p => p.OrganizationId.Equals(organizationId)); if (org == null || org.Center == null || org.Center.EndPoints == null || org.Center.EndPoints.Count == 0) { return(monitorySite); } // List <DutyCheckLog> allDutyCheckLogs = GetAllDutyCheckLog(db, org); //判断是否已绑定监控点数据 if (log.DutycheckSiteId != null) { string murl = string.Format("http://{0}:{1}/Resources/MonitorySite/cameraId/{2}", org.Center.EndPoints[0].IPAddress, org.Center.EndPoints[0].Port, log.DutycheckSiteId); MonitorySite ms = HttpClientHelper.GetOne <MonitorySite>(murl); return(ms.ToCameraView()); } string url = string.Format("http://{0}:{1}/Resources/MonitorySite", org.Center.EndPoints[0].IPAddress, org.Center.EndPoints[0].Port); IEnumerable <MonitorySite> monitorySiteT = HttpClientHelper.Get <MonitorySite>(url); //过滤出有效的监控点 monitorySiteT = monitorySiteT.Where(p => p.IsDutycheckSite); //确保所有监控点能覆盖 CameraView randomCameraView = null; if (monitorySiteT == null || monitorySiteT.Count() == 0) { return(randomCameraView); } foreach (MonitorySite cam in monitorySiteT) { var competeLog = allDutyCheckLogs.FirstOrDefault(p => p.DutycheckSiteId.Equals(cam.CameraId)); if (competeLog != null) { continue; } else { randomCameraView = cam.ToCameraView(); break; } } // if (randomCameraView == null) { Random r = new Random(monitorySiteT.Count()); randomCameraView = monitorySiteT.ToArray()[r.Next()].ToCameraView(); } return(randomCameraView); }