Esempio n. 1
0
        /// <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()}");
                }
            }
        }
Esempio n. 3
0
        /// <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;
            }
        }