/// <summary> /// Start Scan job and check job finish /// <param name="pagecount">Options of scan build job</param> /// <param name="originalsides">Options of scan build job</param> /// <param name="UseOriginalSides">Bool for using OriginalSides</param> /// </summary> public void ExecutionScanJob(int pagecount, LinkScanOriginalSides originalsides, bool UseOriginalSides = false) { bool result = true; result = LinkUI.Controller.Click(new UiSelector().ResourceId($"{LinkScanAppsPackageName}:id/bt_send")); Thread.Sleep(TimeSpan.FromSeconds(1)); CheckServerErrorPopup(); Thread.Sleep(TimeSpan.FromSeconds(1)); HandleJediOmniPopup("#hpid-prompt-flatbed-autodetect", "#hpid-button-continue"); RecordEvent(DeviceWorkflowMarker.JobBuildBegin); if (!result) { DeviceWorkflowException e = new DeviceWorkflowException($"Fail to execution scan job - Fail to click the scan button :: {_destination}"); e.Data.Add(_exceptionCategoryData, ConnectorExceptionCategory.ExecutionJob.GetDescription()); throw e; } string flag = originalsides.GetDescription(); UpdateStatus($"{flag} Scan Job started :: {_destination}"); RecordEvent(DeviceWorkflowMarker.ScanJobBegin); if (UseOriginalSides) { switch (originalsides) { case (LinkScanOriginalSides.Onesided): ScanOption_OnesidedJob(); break; case (LinkScanOriginalSides.Twosided): case (LinkScanOriginalSides.Pagesflipup): ScanOption_TwosidedJob(pagecount); break; default: DeviceWorkflowException e = new DeviceWorkflowException($"Unrecognized Original sides on Scan job:: {_destination}"); e.Data.Add(_exceptionCategoryData, ConnectorExceptionCategory.FalseAlarm.GetDescription()); throw e; } } else { ScanOption_OnesidedJob(); } RecordEvent(DeviceWorkflowMarker.JobBuildEnd); }
/// <summary> /// Set Original Sides for scan source /// </summary> /// <param name="originalSides">original sides to set</param> public void SetOriginalSides(LinkScanOriginalSides originalSides) { if (!originalSides.Equals(GetOriginalSides())) { bool result = true; result &= _controller.Click(new UiSelector().Text("Original Sides")); switch (originalSides) { case LinkScanOriginalSides.Onesided: if (result &= _controlHelper.WaitingObjectAppear(new UiSelector().Text("1-sided"), 200, 300)) { Thread.Sleep(1000); result &= _controller.Click(new UiSelector().Text("1-sided")); } break; case LinkScanOriginalSides.Twosided: if (result &= _controlHelper.WaitingObjectAppear(new UiSelector().Text("2-sided"), 200, 300)) { Thread.Sleep(1000); result &= _controller.Click(new UiSelector().Text("2-sided")); } break; case LinkScanOriginalSides.Pagesflipup: if (result &= _controlHelper.WaitingObjectAppear(new UiSelector().Text("2-sided"), 200, 300)) { Thread.Sleep(1000); result &= _controller.Click(new UiSelector().Text("2-sided")); } result &= _controller.Click(new UiSelector().ResourceId($"{_packageName}:id/chk_check")); break; } if (!result) { throw new DeviceWorkflowException($"Can not set option :: Original Sides to {originalSides.GetDescription()}"); } } }
/// <summary> /// Start Scan job and check job finish /// <param name="pagecount">Options of scan build job</param> /// <param name="originalsides">Options of scan build job</param> /// <param name="UseOriginalSides">Bool for using OriginalSides</param> /// </summary> public void ExecutionScanJob(int pagecount, LinkScanOriginalSides originalsides, bool UseOriginalSides = false) { bool result = true; bool scanresult = false; result = LinkUI.Controller.Click(new UiSelector().ResourceId($"{iManageAppsPackageName}:id/bt_send")); Thread.Sleep(TimeSpan.FromSeconds(1)); CheckServerErrorPopup(); Thread.Sleep(TimeSpan.FromSeconds(1)); HandleJediOmniPopup("#hpid-prompt-flatbed-autodetect", "#hpid-button-continue"); if (UseOriginalSides) { RecordEvent(DeviceWorkflowMarker.JobBuildBegin); } RecordEvent(DeviceWorkflowMarker.ScanJobBegin); if (!result) { DeviceWorkflowException e = new DeviceWorkflowException($"Clicking Scan button failed :: {_appName}"); e.Data.Add(_exceptionCategoryData, ConnectorExceptionCategory.ExecutionJob.GetDescription()); throw e; } string flag = originalsides.GetDescription(); UpdateStatus($"{flag} Scan Job started :: {_appName}"); if (UseOriginalSides) { switch (originalsides) { case (LinkScanOriginalSides.Onesided): ScanOption_OnesidedJob(); break; case (LinkScanOriginalSides.Twosided): case (LinkScanOriginalSides.Pagesflipup): ScanOption_TwosidedJob(pagecount); break; default: DeviceWorkflowException e = new DeviceWorkflowException($"Unrecognized Original sides on Scan job:: {_appName}"); e.Data.Add(_exceptionCategoryData, ConnectorExceptionCategory.FalseAlarm.GetDescription()); throw e; } } else { ScanOption_OnesidedJob(); } if (JetAdvantageLinkControlHelper.WaitingObjectAppear(new UiSelector().ResourceId($"{iManageAppsPackageName}:id/iv_filter"), 500, 120, _inactivityTimeLimit)) { scanresult = true; UpdateStatus("Scan Complete!"); } if (!scanresult) { DeviceWorkflowException e = new DeviceWorkflowException($"Scan failed :: {_appName}"); e.Data.Add(_exceptionCategoryData, ConnectorExceptionCategory.ExecutionJob.GetDescription()); throw e; } }