private void setupFailTempAlarmReport(String name) { //random time needed for alarm report object. DateTime date = new DateTime(1337, 1, 1); String dateTest = date.ToString("yyyy:MM:dd"); DateTime time = new DateTime(1337, 1, 1); String timeTest = time.ToString("H:mm:ss"); DateTime cancelDuringEmergencyTime = new DateTime(1337, 1, 1); String cancelDuringEmergencyTimeTest = cancelDuringEmergencyTime.ToString("H:mm:ss"); DateTime guardRadioedDate = new DateTime(1337, 1, 1); String guardRadioedDateTest = guardRadioedDate.ToString("yyyy:MM:dd"); DateTime guardRadioedFrom = new DateTime(1337, 1, 1); String guardRadioedFromTest = guardRadioedFrom.ToString("H:mm:ss"); DateTime guardRadioedTo = new DateTime(1337, 1, 1); String guardRadioedToTest = guardRadioedTo.ToString("H:mm:ss"); DateTime arrivedAt = new DateTime(1337, 1, 1); String arrivedAtTest = arrivedAt.ToString("H:mm:ss"); DateTime done = new DateTime(1337, 1, 1); String doneTest = done.ToString("H:mm:ss"); //ends here. alarmReportTest = new AlarmReport(null, 1234567123, "streetAndHouseNumberTest", 1234, "cityTest", 12345678, dateTest, timeTest, "zoneTest", false, false, false, false, false, false, false, false, "000", false, cancelDuringEmergencyTimeTest, false, "", "remarkTest", "nameTest", "installerTest", "controlCenterTest", guardRadioedDateTest, guardRadioedFromTest, guardRadioedToTest, arrivedAtTest, doneTest, userTest.Id); }
protected virtual void OnAlarmReporting(AlarmReport report) { if (this.AlarmReporting != null) { this.AlarmReporting(this, report); } }
private void InitAlarmReport() { //tabGraphMain.TabPages.RemoveAt(3); objAlarm = new AlarmReport(); objAlarm.Dock = DockStyle.Fill; tabAlarmReport.Controls.Add(objAlarm); }
public void TestMethodLocalStorageGetTempAlarmReportFail() { setupAlarmReport("TestMethodLocalStorageGetTempAlarmReport"); AlarmReport expectedResult = alarmReportTest; localStorage.saveAlarmReport(alarmReportTest); AlarmReport actuaclResult = localStorage.getTempAlarmReport(69); localStorage.removeAlarmReports(); Assert.AreNotEqual(expectedResult.Name, actuaclResult.Name); }
public AlarmReport getTempAlarmReport(long id) { long length = currentNumberOfTempAlarmReports(); long currentId; if (length > 0) { for (long i = 0; i < length; i++) { currentId = i + 1; if (currentId == id) { String customerName = appSettings[id + KEY_TEMP_REPORT_CUSTOMERNAME] as String; long customerNumber = Convert.ToInt64(appSettings[id + KEY_TEMP_REPORT_CUSTOMERNUMBER] as String); String streetAndHouseNumber = appSettings[id + KEY_TEMP_REPORT_STREETANDHOUSENUMBER] as String; int zipCode = Convert.ToInt32(appSettings[id + KEY_TEMP_REPORT_ZIPCODE] as String); String city = appSettings[id + KEY_TEMP_REPORT_CITY] as String; long phonenumber = Convert.ToInt64(appSettings[id + KEY_TEMP_REPORT_PHONENUMBER] as String); String date = appSettings[id + KEY_TEMP_REPORT_DATE] as String; String time = appSettings[id + KEY_TEMP_REPORT_TIME] as String; String zone = appSettings[id + KEY_TEMP_REPORT_ZONE] as String; Boolean burglaryVandalism = Convert.ToBoolean(appSettings[id + KEY_TEMP_REPORT_BURGLARYVANDALISM] as String); Boolean windowDoorClosed = Convert.ToBoolean(appSettings[id + KEY_TEMP_REPORT_WINDOWDOORCLOSED] as String); Boolean apprehendedPerson = Convert.ToBoolean(appSettings[id + KEY_TEMP_REPORT_APPREHENDEDPERSON] as String); Boolean staffError = Convert.ToBoolean(appSettings[id + KEY_TEMP_REPORT_STAFFERROR] as String); Boolean nothingToReport = Convert.ToBoolean(appSettings[id + KEY_TEMP_REPORT_NOTHINGTOREPORT] as String); Boolean technicalError = Convert.ToBoolean(appSettings[id + KEY_TEMP_REPORT_TECHNICALERROR] as String); Boolean unknownReason = Convert.ToBoolean(appSettings[id + KEY_TEMP_REPORT_UNKNOWNREASON] as String); Boolean other = Convert.ToBoolean(appSettings[id + KEY_TEMP_REPORT_OTHER] as String); String reasonCodeId = appSettings[id + KEY_TEMP_REPORT_REASONCODEID] as String; Boolean cancelDuringEmergency = Convert.ToBoolean(appSettings[id + KEY_TEMP_REPORT_CANCELDURINGEMERGENCY] as String); String cancelDuringEmergencyTime = appSettings[id + KEY_TEMP_REPORT_CANCELDURINGEMERGENCYTIME] as String; Boolean coverMade = Convert.ToBoolean(appSettings[id + KEY_TEMP_REPORT_COVERMADE] as String); String coverMadeBy = appSettings[id + KEY_TEMP_REPORT_COVERMADEBY] as String; String remark = appSettings[id + KEY_TEMP_REPORT_REMARK] as String; String name = appSettings[id + KEY_TEMP_REPORT_NAME] as String; String installer = appSettings[id + KEY_TEMP_REPORT_INSTALLER] as String; String controlCenter = appSettings[id + KEY_TEMP_REPORT_CONTROLCENTER] as String; String guardRadioedDate = appSettings[id + KEY_TEMP_REPORT_GUARDRADIOEDDATE] as String; String guardRadioedFrom = appSettings[id + KEY_TEMP_REPORT_GUARDRADIOEDFROM] as String; String guardRadioedTo = appSettings[id + KEY_TEMP_REPORT_GUARDRADIOEDTO] as String; String arrivedAt = appSettings[id + KEY_TEMP_REPORT_ARRIVEDAT] as String; String done = appSettings[id + KEY_TEMP_REPORT_DONE] as String; AlarmReport alarmReport = new AlarmReport(customerName, customerNumber, streetAndHouseNumber, zipCode, city, phonenumber, date, time, zone, burglaryVandalism, windowDoorClosed, apprehendedPerson, staffError, nothingToReport, technicalError, unknownReason, other, reasonCodeId, cancelDuringEmergency, cancelDuringEmergencyTime, coverMade, coverMadeBy, remark, name, installer, controlCenter, guardRadioedDate, guardRadioedFrom, guardRadioedTo, arrivedAt, done, getUser().Id); return(alarmReport); } } } return(null); }
public async Task <Boolean> createAlarmReport(AlarmReport alarmReport) { //TODO fix så der bliver fortalt om der bliver gemt til localstorage eller i dbs if (checkNetworkConnection()) { return(await dBFacade.createAlarmReport(alarmReport)); } else { return(false); } }
public Boolean createTempAlarmReport(AlarmReport alarmReport) { Debug.WriteLine("----------------------"); Debug.WriteLine("createTempAlarmReport"); Debug.WriteLine("----------------------"); long id = getNextTempAlarmReportId(); try { appSettings.Add(id + KEY_TEMP_REPORT_CUSTOMERNAME, alarmReport.CustomerName + ""); appSettings.Add(id + KEY_TEMP_REPORT_CUSTOMERNUMBER, alarmReport.CustomerNumber + ""); appSettings.Add(id + KEY_TEMP_REPORT_STREETANDHOUSENUMBER, alarmReport.StreetAndHouseNumber + ""); appSettings.Add(id + KEY_TEMP_REPORT_ZIPCODE, alarmReport.ZipCode + ""); appSettings.Add(id + KEY_TEMP_REPORT_CITY, alarmReport.City + ""); appSettings.Add(id + KEY_TEMP_REPORT_PHONENUMBER, alarmReport.Phonenumber + ""); appSettings.Add(id + KEY_TEMP_REPORT_DATE, alarmReport.Date + ""); appSettings.Add(id + KEY_TEMP_REPORT_TIME, alarmReport.Time + ""); appSettings.Add(id + KEY_TEMP_REPORT_ZONE, alarmReport.Zone + ""); appSettings.Add(id + KEY_TEMP_REPORT_BURGLARYVANDALISM, alarmReport.BurglaryVandalism + ""); appSettings.Add(id + KEY_TEMP_REPORT_WINDOWDOORCLOSED, alarmReport.WindowDoorClosed + ""); appSettings.Add(id + KEY_TEMP_REPORT_APPREHENDEDPERSON, alarmReport.ApprehendedPerson + ""); appSettings.Add(id + KEY_TEMP_REPORT_STAFFERROR, alarmReport.StaffError + ""); appSettings.Add(id + KEY_TEMP_REPORT_NOTHINGTOREPORT, alarmReport.NothingToReport + ""); appSettings.Add(id + KEY_TEMP_REPORT_TECHNICALERROR, alarmReport.TechnicalError + ""); appSettings.Add(id + KEY_TEMP_REPORT_UNKNOWNREASON, alarmReport.UnknownReason + ""); appSettings.Add(id + KEY_TEMP_REPORT_OTHER, alarmReport.Other + ""); appSettings.Add(id + KEY_TEMP_REPORT_REASONCODEID, alarmReport.ReasonCodeId + ""); appSettings.Add(id + KEY_TEMP_REPORT_CANCELDURINGEMERGENCY, alarmReport.CancelDuringEmergency + ""); appSettings.Add(id + KEY_TEMP_REPORT_CANCELDURINGEMERGENCYTIME, alarmReport.CancelDuringEmergencyTime + ""); appSettings.Add(id + KEY_TEMP_REPORT_COVERMADE, alarmReport.CoverMade + ""); appSettings.Add(id + KEY_TEMP_REPORT_COVERMADEBY, alarmReport.CoverMadeBy + ""); appSettings.Add(id + KEY_TEMP_REPORT_REMARK, alarmReport.Remark + ""); appSettings.Add(id + KEY_TEMP_REPORT_NAME, alarmReport.Name + ""); appSettings.Add(id + KEY_TEMP_REPORT_INSTALLER, alarmReport.Installer + ""); appSettings.Add(id + KEY_TEMP_REPORT_CONTROLCENTER, alarmReport.ControlCenter + ""); appSettings.Add(id + KEY_TEMP_REPORT_GUARDRADIOEDDATE, alarmReport.GuardRadioedDate + ""); appSettings.Add(id + KEY_TEMP_REPORT_GUARDRADIOEDFROM, alarmReport.GuardRadioedFrom + ""); appSettings.Add(id + KEY_TEMP_REPORT_GUARDRADIOEDTO, alarmReport.GuardRadioedTo + ""); appSettings.Add(id + KEY_TEMP_REPORT_ARRIVEDAT, alarmReport.ArrivedAt + ""); appSettings.Add(id + KEY_TEMP_REPORT_DONE, alarmReport.Done + ""); appSettings.Save(); addNumberOfTempAlarmReports(); return(true); } catch (IsolatedStorageException i) { Debug.WriteLine("" + i.Message); return(false); } }
public async Task <Boolean> sendAlarmReport(AlarmReport alarmReport) { Boolean isConnected = controller.checkNetworkConnection(); Debug.WriteLine("connect: " + isConnected); if (isConnected) { if (await controller.createAlarmReport(alarmReport)) { emptyAlarmReport(); isAlarmReportEmpty = true; MessageBox.Show(AppResources.ReportAlarmReportSuccess); return(true); } else { isAlarmReportEmpty = false; if (controller.createLocalStorageAlarmReport(alarmReport)) { emptyAlarmReport(); isAlarmReportEmpty = true; MessageBox.Show(AppResources.ErrorInBackend + "\r\n" + AppResources.ReportAlarmReportLocalStorageSuccess); return(true); } else { isAlarmReportEmpty = false; MessageBox.Show(AppResources.ReportAlarmReportLocalStorageFailed); return(false); } } } else { if (controller.createLocalStorageAlarmReport(alarmReport)) { emptyAlarmReport(); isAlarmReportEmpty = true; MessageBox.Show(AppResources.ReportAlarmReportLocalStorageSuccess); return(true); } else { isAlarmReportEmpty = false; MessageBox.Show(AppResources.ReportAlarmReportLocalStorageFailed); return(false); } } }
/// <summary> /// 通知其打印机状态变化 /// </summary> /// <param name="status"></param> public void NotifyTicketPrinterStatus(PrinterStatus status) { if (status != PrinterStatus.Ok || status != _LastTicketPrinterStatus) //如果打印机状态不正常或发生变化 { _LastTicketPrinterStatus = status; DisplayMsg(PrinterStatusDescription.GetDescription(status), true); AlarmReport report = new AlarmReport(ParkID, _entrance.EntranceID, DateTime.Now, _entrance.EntranceName, AlarmType.PrinterStatus, PrinterStatusDescription.GetDescription(status), string.Empty); if (this.AlarmReporting != null) { this.AlarmReporting(this, report); } } }
public void alarmComm() { DataTime = DateTime.Now; AlarmReport alarmReport = new AlarmReport { Id = configGP.TowerID, Time = DataTime, AlarmCode = alarmGP.AlarmCode, IsAlarmSet = alarmGP.AlarmState == true ? true : false }; string JsonSerial = JsonConvert.SerializeObject(alarmReport); Textbox_Write(JsonSerial, alarmURL); }
public void myTextBlock_Tap(object sender, System.Windows.Input.GestureEventArgs args) { TextBlock textBlock = (TextBlock)args.OriginalSource; long id = Int64.Parse(textBlock.Name); AlarmReport currentAlarmReport = controller.getLocalTempAlarmReport(id); if (controller.removeLocalStorageTempSelectedAlarmReport(id)) { fillAlarmReport(currentAlarmReport); pivot.SelectedItem = alarmReport; } else { MessageBox.Show(AppResources.ReportError); } }
public async Task <Boolean> createAlarmReport(AlarmReport alarmReport) { long id = getNextAlarmReportId(); try { appSettings.Add(id + KEY_DUMMY_REPORT_CUSTOMERNAME, alarmReport.CustomerName); appSettings.Add(id + KEY_DUMMY_REPORT_CUSTOMERNUMBER, alarmReport.CustomerNumber); appSettings.Add(id + KEY_DUMMY_REPORT_STREET_AND_HOUSENUMBER, alarmReport.StreetAndHouseNumber); appSettings.Add(id + KEY_DUMMY_REPORT_ZIPCODE, alarmReport.ZipCode); appSettings.Add(id + KEY_DUMMY_REPORT_CITY, alarmReport.City); appSettings.Add(id + KEY_DUMMY_REPORT_PHONENUMBER, alarmReport.Phonenumber); appSettings.Add(id + KEY_DUMMY_REPORT_DATE, alarmReport.Date); appSettings.Add(id + KEY_DUMMY_REPORT_TIME, alarmReport.Time); appSettings.Add(id + KEY_DUMMY_REPORT_ZONE, alarmReport.Zone); appSettings.Add(id + KEY_DUMMY_REPORT_BURGLARYVANDALISM, alarmReport.BurglaryVandalism); appSettings.Add(id + KEY_DUMMY_REPORT_WINDOWDOORCLOSED, alarmReport.WindowDoorClosed); appSettings.Add(id + KEY_DUMMY_REPORT_APPREHENDEDPERSON, alarmReport.ApprehendedPerson); appSettings.Add(id + KEY_DUMMY_REPORT_STAFFERROR, alarmReport.StaffError); appSettings.Add(id + KEY_DUMMY_REPORT_NOTHINGTOREPORT, alarmReport.NothingToReport); appSettings.Add(id + KEY_DUMMY_REPORT_TECHNICALERROR, alarmReport.TechnicalError); appSettings.Add(id + KEY_DUMMY_REPORT_UNKNOWNREASON, alarmReport.UnknownReason); appSettings.Add(id + KEY_DUMMY_REPORT_OTHER, alarmReport.Other); appSettings.Add(id + KEY_DUMMY_REPORT_REASONCODEID, alarmReport.ReasonCodeId); appSettings.Add(id + KEY_DUMMY_REPORT_CANCELDURINGEMERGENCY, alarmReport.CancelDuringEmergency); appSettings.Add(id + KEY_DUMMY_REPORT_CANCELDURINGEMERGENCYTIME, alarmReport.CancelDuringEmergencyTime); appSettings.Add(id + KEY_DUMMY_REPORT_COVERMADE, alarmReport.CoverMade); appSettings.Add(id + KEY_DUMMY_REPORT_COVERMADEBY, alarmReport.CoverMadeBy); appSettings.Add(id + KEY_DUMMY_REPORT_REMARK, alarmReport.Remark); appSettings.Add(id + KEY_DUMMY_REPORT_NAME, alarmReport.Name); appSettings.Add(id + KEY_DUMMY_REPORT_INSTALLER, alarmReport.Installer); appSettings.Add(id + KEY_DUMMY_REPORT_CONTROLCENTER, alarmReport.ControlCenter); appSettings.Add(id + KEY_DUMMY_REPORT_GUARDRADIOEDDATE, alarmReport.GuardRadioedDate); appSettings.Add(id + KEY_DUMMY_REPORT_GUARDRADIOEDFROM, alarmReport.GuardRadioedFrom); appSettings.Add(id + KEY_DUMMY_REPORT_GUARDRADIOEDTO, alarmReport.GuardRadioedTo); appSettings.Add(id + KEY_DUMMY_REPORT_ARRIVEDAT, alarmReport.ArrivedAt); appSettings.Add(id + KEY_DUMMY_REPORT_DONE, alarmReport.Done); appSettings.Add(id + KEY_DUMMY_REPORT_EMPLOYEE_ID, alarmReport.EmployeeId); appSettings.Save(); dummyDBStatus = true; } catch { dummyDBStatus = false; } return(dummyDBStatus); }
private void UpdateAlarmReport() { AlarmReport frm = null; foreach (Control ctr in tabAlarmReport.Controls) { if (ctr.Name == nameof(AlarmReport)) { frm = ctr as AlarmReport; break; } } if (frm != null) { frm.GetData(); } }
public async Task <List <AlarmReport> > getAlarmReports() { List <AlarmReport> alarmReports = new List <AlarmReport>(); int length = currentNumberOfAlarmReports(); long id = 0; if (length > 0) { for (int i = 0; i < length; i++) { id = i + 1; AlarmReport alarmReport = await getAlarmReport(id); alarmReports.Add(alarmReport); } } return(alarmReports); }
private void ReportSink(AlarmReport report) { List <IReportSinker> faultSinkers = new List <IReportSinker>(); foreach (IReportSinker reportSinker in _reportSinkers) { try { reportSinker.AlarmSink(report); } catch (Exception ex) { faultSinkers.Add(reportSinker); ExceptionPolicy.HandleException(ex); } } if (faultSinkers.Count > 0) { RemoveSinkers(faultSinkers); } }
public async Task <Boolean> sendAlarmReport(AlarmReport alarmReport) { try { using (HttpClient client = new HttpClient()) { Debug.WriteLine("createAlarmRapport"); String json = JsonConvert.SerializeObject(alarmReport); var resultWebservice = await client.PostAsync("http://gryphon.dk/GryphonSecurityRestFullWebservice/webServices/createAlarmReport.php/", new StringContent(json, Encoding.UTF8, "application/json")); //var resultWebservice = await client.PostAsync("http://kragsberger.dk/GryphonSecurityRestFullWebservice/webServices/createAlarmReport.php/", new StringContent(json, Encoding.UTF8, "application/json")); //var resultWebservice = await client.GetAsync("http://kragsberger.dk/rest/" + name); Debug.WriteLine("her createalarm: " + resultWebservice); resultWebservice.EnsureSuccessStatusCode(); Boolean result = Convert.ToBoolean(JsonConvert.DeserializeObject <String>(await resultWebservice.Content.ReadAsStringAsync())); return(result); } } catch (JsonReaderException ex) { Debug.WriteLine("catch in createAlarmReport"); return(false); } }
private void park_AlarmReporting(object sender, AlarmReport report) { ReportEnqueue(report); }
protected override void OnCardWaiting(OfflineCardReadReport report) { //EntranceBase entrance = GetEntrance(report.EntranceID); //if (entrance == null) return; //CardInfo card = (new CardBll(AppSettings.CurrentSetting.ParkConnect)).GetCardDetail(report.CardID); //if (card != null) //{ // //离线模式下,如果硬件记录的时间大于系统记录的时间,表明卡片在软件退出时进出过停车场,所以此时以硬件时间为准 // if (report.LastDateTime != null && report.LastDateTime.Value.Ticks > card.LastDateTime.Ticks) card.LastDateTime = report.LastDateTime.Value; // ProcessCard(entrance, report.Reader, card, report.EventDateTime); //} //else //{ // DenyCard(report.CardID, Ralid.Park.BusinessModel.Enum.EventInvalidType.INV_UnRegister, entrance,null); //} EntranceBase entrance = GetEntrance(report.EntranceID); if (entrance == null) { return; } //收到卡片等待事件时,如果之前没有收到此卡的事件等待事件,则生成一个卡片事件 if (entrance.ProcessingEvent == null || entrance.ProcessingEvent.CardID != report.CardID) { CardInfo card = (new CardBll(AppSettings.CurrentSetting.ParkConnect)).GetCardDetail(report.CardID, AppSettings.CurrentSetting.CurrentStandbyConnect); if (card != null) { //卡片信息以硬件上传信息为准 //不是远距离读卡的,如果有上一次读卡时间,以硬件上传的上一次读卡时间为准 if (report.Reader != EntranceReader.Reader2 && report.LastDateTime != null) { card.LastDateTime = report.LastDateTime.Value; } //modify by Jan 2014-08-19 当启用硬件识别时,以硬件上传的为准 if (UserSetting.Current.EnableCarPlateRecognize && UserSetting.Current.HardWareCarPlateRecognize) { card.RegCarPlate = report.CarPlate; card.LastCarPlate = report.LastCarPlate; } if (entrance.IsExitDevice) { CreateCardExitEvent(card, entrance, report.EventDateTime); } else { CreateCardEnterEvent(card, entrance, report.EventDateTime); } } else { string description = string.Format("未找到脱机卡片{0}", report.CardID); //提示找不到脱机卡片 AlarmReport alarm = new AlarmReport( this.Park.ParkID, entrance.EntranceID, DateTime.Now, entrance.EntranceName, AlarmType.InvalidCard, description, string.Empty); RaiseAlarmReporting(alarm); } } if (entrance.ProcessingEvent != null && entrance.ProcessingEvent.CardID == report.CardID) { //如果正在处理的事件的读头与上传事件的读头不一致,将正在处理的事件的读头设置为上传事件的读头 if (entrance.ProcessingEvent.Reader != report.Reader) { entrance.ProcessingEvent.Reader = report.Reader; } entrance.ProcessingEvent.ComparisonResult = report.CarPlateComparisonResult; entrance.ProcessingEvent.EventStatus = report.EventStatus; ////当事件车牌对比结果为车牌对比失败,而软件又启用了软件车牌识别的,使用软件识别重新进行车牌识别对比 ////这是因为当控制板没有安装硬件车牌识别一体机时,默认返回对比结果为对比失败 //if (((report.EventStatus == CardEventStatus.CarPlateFail)||(report.CarPlateComparisonResult== BusinessModel.Enum.CarPlateComparisonResult.Noncontrastive)) // && UserSetting.Current.EnableCarPlateRecognize // && UserSetting.Current.SoftWareCarPlateRecognize) //modify by Jan 2014-08-19 当启用车牌识别时 if (UserSetting.Current.EnableCarPlateRecognize) { //当启用软件识别时,忽略控制板上传的识别结果,使用软件识别重新进行车牌识别对比 if (UserSetting.Current.SoftWareCarPlateRecognize) { //add by Jan 2014-09-01 如果当前状态为车牌对比失败,对比前需设置为等待处理状态和对比成功 if (entrance.ProcessingEvent.EventStatus == CardEventStatus.CarPlateFail) { entrance.ProcessingEvent.ComparisonResult = BusinessModel.Enum.CarPlateComparisonResult.Success; entrance.ProcessingEvent.EventStatus = CardEventStatus.Pending; } CarPlateHandler(entrance, entrance.ProcessingEvent, entrance.ProcessingCard); } else { //当启用硬件识别时,以控制板上传的结果为准 entrance.ProcessingEvent.CarPlate = report.CarPlate; entrance.ProcessingEvent.LastCarPlate = report.LastCarPlate; } } if (entrance.ProcessingEvent.CardPaymentInfo != null && !report.NeedPay) { //不需要收费时,将费用设为0,因为收到卡片车牌对比确认事件或事件有效时,控制板肯定会先判断是否已收费的,所以收到该事件时,费用应为0 entrance.ProcessingEvent.CardPaymentInfo.Accounts = 0; } if (report.EventStatus == CardEventStatus.CarPlateFail) { //如果收到的刷卡事件状态为对比失败,需要确认或放行 if (entrance.ProcessingEvent.EventStatus == CardEventStatus.CarPlateFail) { //上位机确认 RaiseCardEventReporting(entrance.ProcessingEvent); } else { //如果处理的事件状态为非对比失败,而收到的刷卡事件状态为对比失败,说明了系统启用了软件识别,并且对比成功了,可放行卡片 entrance.CardValid(); } } //这里不上传到上位机,是因为当需要收费时,上位机的收费窗口也可以进行收费处理,但收费窗口是没有卡片的,所以是写不了卡的 //else //{ // RaiseCardEventReporting(entrance.ProcessingEvent); //} } }
public void ProcessReport(ReportBase r) { ParkInfo park = ParkBuffer.Current.GetPark(r.ParkID); if (park != null && park.RootParkID > 0) { park = ParkBuffer.Current.GetPark(park.RootParkID); } if (park == null) { return; } if (park.HostWorkstation == WorkStationInfo.CurrentStation.StationID) //如果本机是停车场的通讯主机,则它要负责抓拍图片 { EntranceInfo entrance = ParkBuffer.Current.GetEntrance(r.EntranceID); if (entrance != null) { foreach (VideoSourceInfo video in entrance.VideoSources) { if (r is CarSenseReport) { CarSenseReport cp = r as CarSenseReport; if (cp.InOrOutFlag == 1) //车到时打开视频 { VideoPanel vp = videoGrid.VideoPanelCollection.SingleOrDefault(v => (v.VideoSource == video)); if (vp != null) { if (UserSetting.Current.SnapshotWhenCarArrive) //车压地感时抓拍图片 { string path = Path.Combine(TempFolderManager.GetCurrentFolder(), string.Format("{0}_{1}_{2}.jpg", "CarArrive", Guid.NewGuid().ToString(), video.VideoID)); if (SnapShotTo(video, ref path, false, false)) { SnapShot shot = new SnapShot(cp.EventDateTime, video.VideoID, string.Empty, path); string master = AppSettings.CurrentSetting.ImageDBConnStr; string standby = AppSettings.CurrentSetting.CurrentStandbyConnect; CommandResult result = (new SnapShotBll(master)).Insert(shot); if (result.Result != ResultCode.Successful && !string.IsNullOrEmpty(standby)) { (new SnapShotBll(standby)).Insert(shot); } //(new SnapShotBll(AppSettings.CurrentSetting.ParkConnect)).Insert(shot); } else { if (AppSettings.CurrentSetting.Debug) { string logmsg = string.Format("【{0}】车压地感时抓拍图片失败 ", vp.VideoSource.VideoName); Ralid.GeneralLibrary.LOG.FileLog.Log("FrmSnapShoter", logmsg); } } } else { vp.OpenForSnapshot(true); } } } else { if (AppSettings.CurrentSetting.Optimized) //启用视频优化车走时关闭视频 { VideoPanel vp = videoGrid.VideoPanelCollection.SingleOrDefault(v => (v.VideoSource == video)); if (vp != null) { vp.Close(); } } } } else if (r is CardEventReport) { CardEventReport cardEvent = r as CardEventReport; if (cardEvent.EventStatus == CardEventStatus.Valid) { VideoPanel vp = videoGrid.VideoPanelCollection.SingleOrDefault(v => (v.VideoSource == video)); if (vp != null) //如果视频已经抓拍了一张,则此次用同一张图 { object tag = null; lock (_TagLocker) //加锁是防止多个线程同时写 { tag = vp.Tag; vp.Tag = null; } if (tag != null) { string path = tag.ToString(); if (path != "fail") { SnapShot shot = new SnapShot(cardEvent.EventDateTime, video.VideoID, cardEvent.CardID, path); string master = AppSettings.CurrentSetting.ImageDBConnStr; string standby = AppSettings.CurrentSetting.CurrentStandbyConnect; CommandResult result = (new SnapShotBll(master)).Insert(shot); if (result.Result != ResultCode.Successful && !string.IsNullOrEmpty(standby)) { (new SnapShotBll(standby)).Insert(shot); } //(new SnapShotBll(AppSettings.CurrentSetting.ParkConnect)).Insert(shot); } else { if (AppSettings.CurrentSetting.Debug) { string logmsg = string.Format("【{0}】刷卡事件之前的视频抓拍失败,无图片 ", vp.VideoSource.VideoName); Ralid.GeneralLibrary.LOG.FileLog.Log("FrmSnapShoter", logmsg); } } } else { string path = Path.Combine(TempFolderManager.GetCurrentFolder(), string.Format("{0}_{1}_{2}.jpg", "CardEvent", Guid.NewGuid().ToString(), video.VideoID)); if (SnapShotTo(video, ref path, false, false)) { SnapShot shot = new SnapShot(cardEvent.EventDateTime, video.VideoID, cardEvent.CardID, path); string master = AppSettings.CurrentSetting.ImageDBConnStr; string standby = AppSettings.CurrentSetting.CurrentStandbyConnect; CommandResult result = (new SnapShotBll(master)).Insert(shot); if (result.Result != ResultCode.Successful && !string.IsNullOrEmpty(standby)) { (new SnapShotBll(standby)).Insert(shot); } //(new SnapShotBll(AppSettings.CurrentSetting.ParkConnect)).Insert(shot); } else { if (AppSettings.CurrentSetting.Debug) { string logmsg = string.Format("【{0}】刷卡事件抓拍图片失败 ", vp.VideoSource.VideoName); Ralid.GeneralLibrary.LOG.FileLog.Log("FrmSnapShoter", logmsg); } } } vp.ClearSnapShot();//清空抓拍图片信息 } } } else if (r is AlarmReport) { AlarmReport ar = r as AlarmReport; if (ar.AlarmType == Ralid.Park.BusinessModel.Enum.AlarmType.Opendoor || ar.AlarmType == Ralid.Park.BusinessModel.Enum.AlarmType.GateAlarm) { string path = Path.Combine(TempFolderManager.GetCurrentFolder(), string.Format("{0}_{1}_{2}.jpg", "OpenDoor", Guid.NewGuid().ToString(), video.VideoID)); if (SnapShotTo(video, ref path, false, true)) { //这里清除抓拍图片信息,是因为使用信路通或大华进行抓拍时,会保存抓拍图片和识别到的车牌,如果不清除,有可能会用到下一辆车上 ClearSnapShot(video); SnapShot shot = new SnapShot(ar.EventDateTime, video.VideoID, string.Empty, path); string master = AppSettings.CurrentSetting.ImageDBConnStr; string standby = AppSettings.CurrentSetting.CurrentStandbyConnect; CommandResult result = (new SnapShotBll(master)).Insert(shot); if (result.Result != ResultCode.Successful && !string.IsNullOrEmpty(standby)) { (new SnapShotBll(standby)).Insert(shot); } //(new SnapShotBll(AppSettings.CurrentSetting.ParkConnect)).Insert(shot); } else { if (AppSettings.CurrentSetting.Debug) { string logmsg = string.Format("【{0}】报警抓拍图片失败 ", video.VideoName); Ralid.GeneralLibrary.LOG.FileLog.Log("FrmSnapShoter", logmsg); } } } } } } } }
public Boolean createAlarmReport(AlarmReport alarmReport) { return(dummyDB.createAlarmReport(alarmReport)); }
public Boolean createTempAlarmReport(AlarmReport alarmReport) { return(dBFacade.createTempLocalStorageAlarmReport(alarmReport)); }
public Boolean createAlarmReport(AlarmReport alarmReport) { return(dBFacade.createAlarmReport(alarmReport)); }
public Boolean createAlarmReport(AlarmReport alarmReport) { return(true); }
public void ProcessReport(ReportBase r) { ParkInfo park = ParkBuffer.Current.GetPark(r.ParkID); if (park != null && park.RootParkID > 0) { park = ParkBuffer.Current.GetPark(park.RootParkID); } if (park == null) { return; } if (park.HostWorkstation == WorkStationInfo.CurrentStation.StationID) //如果本机是停车场的通讯主机,则它要负责抓拍图片 { EntranceInfo entrance = ParkBuffer.Current.GetEntrance(r.EntranceID); if (entrance != null) { foreach (VideoSourceInfo video in entrance.VideoSources) { if (r is CarSenseReport) { CarSenseReport cp = r as CarSenseReport; if (cp.InOrOutFlag == 1) //车到时打开视频 { VideoPanel vp = videoGrid.VideoPanelCollection.SingleOrDefault(v => (v.VideoSource == video)); if (vp != null) { if (UserSetting.Current.SnapshotWhenCarArrive) //车压地感时抓拍图片 { string path = Path.Combine(TempFolderManager.GetCurrentFolder(), string.Format("{0}_{1}_{2}.jpg", "CarArrive", Guid.NewGuid().ToString(), video.VideoID)); vp.Play(false); if (vp.Status == VideoStatus.Playing && vp.SnapShotTo(path)) { SnapShot shot = new SnapShot(cp.EventDateTime, video.VideoID, string.Empty, path); (new SnapShotBll(AppSettings.CurrentSetting.ParkConnect)).Insert(shot); } } else { vp.Play(true); } } } else { if (AppSettings.CurrentSetting.Optimized) //启用视频优化车走时关闭视频 { VideoPanel vp = videoGrid.VideoPanelCollection.SingleOrDefault(v => (v.VideoSource == video)); if (vp != null) { vp.Close(); } } } } else if (r is CardEventReport) { CardEventReport cardEvent = r as CardEventReport; if (cardEvent.EventStatus == CardEventStatus.Valid) { VideoPanel vp = videoGrid.VideoPanelCollection.SingleOrDefault(v => (v.VideoSource == video)); if (vp != null) //如果视频已经抓拍了一张,则此次用同一张图 { object tag = null; lock (_TagLocker) //加锁是防止多个线程同时写 { tag = vp.Tag; vp.Tag = null; } if (tag != null) { string path = tag.ToString(); if (path != "fail") { SnapShot shot = new SnapShot(cardEvent.EventDateTime, video.VideoID, cardEvent.CardID, path); (new SnapShotBll(AppSettings.CurrentSetting.ParkConnect)).Insert(shot); } } else { string path = Path.Combine(TempFolderManager.GetCurrentFolder(), string.Format("{0}_{1}_{2}.jpg", "CardEvent", Guid.NewGuid().ToString(), video.VideoID)); if (SnapShotTo(video, path, false)) { SnapShot shot = new SnapShot(cardEvent.EventDateTime, video.VideoID, cardEvent.CardID, path); (new SnapShotBll(AppSettings.CurrentSetting.ParkConnect)).Insert(shot); } } } } } else if (r is AlarmReport) { AlarmReport ar = r as AlarmReport; if (ar.AlarmType == Ralid.Park.BusinessModel.Enum.AlarmType.Opendoor) { string path = Path.Combine(TempFolderManager.GetCurrentFolder(), string.Format("{0}_{1}_{2}.jpg", "OpenDoor", Guid.NewGuid().ToString(), video.VideoID)); if (SnapShotTo(video, path, false)) { SnapShot shot = new SnapShot(ar.EventDateTime, video.VideoID, string.Empty, path); (new SnapShotBll(AppSettings.CurrentSetting.ParkConnect)).Insert(shot); } } } } } } }
public Boolean createLocalStorageAlarmReport(AlarmReport alarmReport) { return(localStorage.saveAlarmReport(alarmReport)); }
public async Task <Boolean> createAlarmReport() { Boolean check = alarmReportMustHave(); if (check) { String customerNameTB = textBoxCustomerName.Text; long customerNumberTB = Convert.ToInt64(textBoxCustomerNumber.Text); String streetAndHouseNumberTB = textBoxStreetAndHouseNumber.Text; int zipCodeTB = Convert.ToInt32(textBoxZipCode.Text); String cityTB = textBoxCity.Text; long phonenumberTB = 0; if (!textBoxPhonenumber.Text.Equals("")) { phonenumberTB = Convert.ToInt64(textBoxPhonenumber.Text); } DateTime date = (DateTime)textBoxDate.Value; String dateTB = date.ToString("yyyy-MM-dd"); DateTime time = (DateTime)textBoxTime.Value; String timeTB = time.ToString("H:mm:ss"); String zoneTB = textBoxZone.Text; Boolean burglaryVandalismCB = (Boolean)checkBoxBurglaryVandalism.IsChecked; Boolean windowDoorClosedCB = (Boolean)checkBoxWindowDoorClosed.IsChecked; Boolean apprehendedPersonCB = (Boolean)checkBoxApprehendedPerson.IsChecked; Boolean staffErrorCB = (Boolean)checkBoxStaffError.IsChecked; Boolean nothingToReportCB = (Boolean)checkBoxNothingToReport.IsChecked; Boolean technicalErrorCB = (Boolean)checkBoxTechnicalError.IsChecked; Boolean unknownReasonCB = (Boolean)checkBoxUnknownReason.IsChecked; Boolean otherCB = (Boolean)checkBoxOther.IsChecked; String reasonCodeId = "000"; Boolean cancelDuringEmergencyCB = (Boolean)checkBoxCancelsDuringEmergency.IsChecked; String cancelDuringEmergencyTimeTP = null; if (!timeBoxCanceledDuringEmergencyTime.Value.Equals(null)) { DateTime cancelDuringEmergencyTime = (DateTime)timeBoxCanceledDuringEmergencyTime.Value; cancelDuringEmergencyTimeTP = cancelDuringEmergencyTime.ToString("H:mm:ss"); } Boolean coverMadeCB = (Boolean)checkBoxCoverMade.IsChecked; String coverMadeByTB = textBoxCoverMadeBy.Text; String remarkTB = textBoxRemark.Text; String nameTB = textBoxName.Text; String installerTB = textBoxInstaller.Text; String controlCenterTB = textBoxControlCenter.Text; DateTime guardRadioedDate = (DateTime)textBoxGuardRadioedDate.Value; String guardRadioedDateTB = guardRadioedDate.ToString("yyyy-MM-dd"); DateTime guardRadioedFrom = (DateTime)textBoxGuardRadioedFrom.Value; String guardRadioedFromTB = guardRadioedFrom.ToString("H:mm:ss"); DateTime guardRadioedTo = (DateTime)textBoxGuardRadioedTo.Value; String guardRadioedToTB = guardRadioedTo.ToString("H:mm:ss"); DateTime arrivedAt = (DateTime)textBoxArrivedAt.Value; String arrivedAtTB = arrivedAt.ToString("H:mm:ss"); DateTime done = (DateTime)textBoxDone.Value; String doneTB = done.ToString("H:mm:ss"); AlarmReport alarmReport = new AlarmReport(customerNameTB, customerNumberTB, streetAndHouseNumberTB, zipCodeTB, cityTB, phonenumberTB, dateTB, timeTB, zoneTB, burglaryVandalismCB, windowDoorClosedCB, apprehendedPersonCB, staffErrorCB, nothingToReportCB, technicalErrorCB, unknownReasonCB, otherCB, reasonCodeId, cancelDuringEmergencyCB, cancelDuringEmergencyTimeTP, coverMadeCB, coverMadeByTB, remarkTB, nameTB, installerTB, controlCenterTB, guardRadioedDateTB, guardRadioedFromTB, guardRadioedToTB, arrivedAtTB, doneTB, controller.getUser().Id); await sendAlarmReport(alarmReport); } else { MessageBox.Show(AppResources.ReportFillSpaces); return(check); } return(check); }
private void CarplateRecHandler(CarplateRecReport report) { try { string carPlate = string.Empty; for (int i = 0; i < 10; i++) { PlateRecognitionResult ret = CarPalteRecognize(this.Park.RootParkID, this.EntranceID); if (ret != null && !string.IsNullOrEmpty(ret.CarPlate) && ret.CarPlate != carPlate) { carPlate = ret.CarPlate; FileLog.Log(this.EntranceName, "识别到车牌号 " + ret.CarPlate); //先寻找完全匹配的车牌号,如果启用了允许车牌号有误差,再用较慢的方法寻找相匹配的车牌号 //这样的话只有车牌号不能完全匹配时才影响会多做一步费时的操作。 List <CardInfo> cards = GetCardHasCarplate(ret.CarPlate, 0); if ((cards == null || cards.Count == 0) && UserSetting.Current.MaxCarPlateErrorChar > 0) { cards = GetCardHasCarplate(ret.CarPlate, UserSetting.Current.MaxCarPlateErrorChar); } if (cards != null && cards.Count == 1) { CardReadReport re = new CardReadReport(); re.CardID = cards[0].CardID; re.ParkingData = null; re.ParkID = this.Park.ParkID; re.EntranceID = this.EntranceID; re.EventDateTime = DateTime.Now; re.CannotIgnored = true; re.Reader = Ralid.Park.BusinessModel.Enum.EntranceReader.DeskTopReader; re.LastCarPlate = string.Empty; this.Carplate = ret.CarPlate; this.AddToReportPool(re); break; //退出循环 } else if (cards == null || cards.Count == 0) { AlarmReport alarm = new AlarmReport( this.Park.ParkID, this.EntranceID, DateTime.Now, this.EntranceName, AlarmType.CarPlateFail, "未找到匹配的车牌,识别到的车牌号为:" + ret.CarPlate, string.Empty); if (this.AlarmReporting != null) { this.AlarmReporting(this, alarm); } } else if (cards.Count > 1) { if (AppSettings.CurrentSetting.Debug) { FileLog.Log(this.EntranceName, "多个人员匹配到车牌:" + ret.CarPlate + " 需要手动输入车牌号放行"); } AlarmReport alarm = new AlarmReport( this.Park.ParkID, this.EntranceID, DateTime.Now, this.EntranceName, AlarmType.CarPlateFail, "多个人员匹配到车牌:" + ret.CarPlate + " 需要手动输入车牌号放行", string.Empty); if (this.AlarmReporting != null) { this.AlarmReporting(this, alarm); } } } Thread.Sleep(200); } //end for } catch (ThreadAbortException ex) { } catch (Exception ex) { Ralid.GeneralLibrary.ExceptionHandling.ExceptionPolicy.HandleException(ex); } }
public async Task <Boolean> createAlarmReport(AlarmReport alarmReport) { return(await connection.sendAlarmReport(alarmReport)); }
public void fillAlarmReport(AlarmReport alarmReport) { textBoxCustomerName.Text = alarmReport.CustomerName; if (alarmReport.CustomerNumber == 0) { textBoxCustomerNumber.Text = ""; } else { textBoxCustomerNumber.Text = "" + alarmReport.CustomerNumber; } textBoxStreetAndHouseNumber.Text = alarmReport.StreetAndHouseNumber; if (alarmReport.ZipCode == 0) { textBoxZipCode.Text = ""; } else { textBoxZipCode.Text = "" + alarmReport.ZipCode; } textBoxCity.Text = alarmReport.City; if (alarmReport.Phonenumber == 0) { textBoxPhonenumber.Text = ""; } else { textBoxPhonenumber.Text = "" + alarmReport.Phonenumber; } textBoxDate.Value = Convert.ToDateTime(alarmReport.Date); textBoxTime.Value = Convert.ToDateTime(alarmReport.Time); textBoxZone.Text = alarmReport.Zone + ""; if (alarmReport.BurglaryVandalism) { checkBoxBurglaryVandalism.IsChecked = true; } if (alarmReport.WindowDoorClosed) { checkBoxWindowDoorClosed.IsChecked = true; } if (alarmReport.ApprehendedPerson) { checkBoxApprehendedPerson.IsChecked = true; } if (alarmReport.StaffError) { checkBoxStaffError.IsChecked = true; } if (alarmReport.NothingToReport) { checkBoxNothingToReport.IsChecked = true; } if (alarmReport.TechnicalError) { checkBoxTechnicalError.IsChecked = true; } if (alarmReport.UnknownReason) { checkBoxUnknownReason.IsChecked = true; } if (alarmReport.Other) { checkBoxOther.IsChecked = true; } if (alarmReport.CancelDuringEmergency) { checkBoxCancelsDuringEmergency.IsChecked = true; timeBoxCanceledDuringEmergencyTime.Value = Convert.ToDateTime(alarmReport.CancelDuringEmergencyTime); } else { timeBoxCanceledDuringEmergencyTime.Value = null; } if (alarmReport.CoverMade) { checkBoxCoverMade.IsChecked = true; textBoxCoverMadeBy.Text = alarmReport.CoverMadeBy; } else { textBoxCoverMadeBy.Text = alarmReport.CoverMadeBy; } textBoxRemark.Text = alarmReport.Remark; textBoxName.Text = alarmReport.Name; textBoxInstaller.Text = alarmReport.Installer; textBoxControlCenter.Text = alarmReport.ControlCenter; textBoxGuardRadioedDate.Value = Convert.ToDateTime(alarmReport.GuardRadioedDate); textBoxGuardRadioedFrom.Value = Convert.ToDateTime(alarmReport.GuardRadioedFrom); textBoxGuardRadioedTo.Value = Convert.ToDateTime(alarmReport.GuardRadioedTo); textBoxArrivedAt.Value = Convert.ToDateTime(alarmReport.ArrivedAt); textBoxDone.Value = Convert.ToDateTime(alarmReport.Done); }