private PluginExecutionResult RunTwain(IDevice device, PluginExecutionData executionData) { PluginExecutionResult result = new PluginExecutionResult(PluginResult.Passed); _activityData = _executionData.GetMetadata <TwainDriverActivityData>(); var preparationManager = DevicePreparationManagerFactory.Create(device); preparationManager.InitializeDevice(true); TopCatUIAutomation.Initialize(); if (_activityData.TwainOperation == TwainOperation.Install) { InstallTwainDriver(device); } else if (_activityData.TwainOperation == TwainOperation.DeviceAddition) { DeviceAddition(device); } else { ConfigureSettings(device, executionData.SessionId, executionData.Credential.UserName); } preparationManager.Reset(); return(result); }
/// <summary> /// constructor /// </summary> public PrintQueueManagementExecutionControl() { InitializeComponent(); activityStatus_dataGridView.AutoGenerateColumns = false; TopCatUIAutomation.Initialize(); }
/// <summary> /// Execute the task of the DSSConfiguration activity. /// </summary> /// <param name="executionData"></param> /// <returns></returns> public PluginExecutionResult Execute(PluginExecutionData executionData) { _activityData = executionData.GetMetadata <DssConfigurationActivityData>(); TopCatUIAutomation.Initialize(); UpdateStatus($"Launching the DSS Configuration Task : {_activityData.TaskName}"); try { List <Object> parameterList = new List <object>(); DssConfigurationTask dssConfigurationTask = new DssConfigurationTask(executionData.SessionId, executionData.Credential.UserName); var method = typeof(DssConfigurationTask).GetMethod(_activityData.TaskName); foreach (var parameterInfo in method.GetParameters()) { object data; _activityData.ParameterValueDictionary.TryGetValue(parameterInfo.ParameterType.Name, out data); parameterList.Add(data); } method.Invoke(dssConfigurationTask, parameterList.ToArray()); } catch (Exception exception) { return(new PluginExecutionResult(PluginResult.Failed, exception.InnerException ?? exception)); } return(new PluginExecutionResult(PluginResult.Passed)); }
/// <summary> /// This method is to handle any orphaned iSecStar client pop-up from the previous failures /// This will close the orphaned prompts from previous iteration runs if any. /// </summary> private void CloseOrphanedClientPopup() { TopCatUIAutomation.Initialize(); _printLogin = new PrintLogin(UIAFramework.ManagedUIA); if (_printLogin.PrintLogin32770Window.IsAvailable()) { _printLogin.CloseButton2Button.ClickWithMouse(MouseButton.Left, WindowsTimeout); Thread.Sleep(humanTimeSpan); } }
/// <summary> /// Triggers all Plugin Activities /// </summary> private void PluginTaskExecution() { InstallPrintDriverWithLPRQueue(); if (_activityData.InstallHpacClient) { UpdateStatus(string.Format("Trigerring the HPAC Client Installation from {0}", _activityData.HpacClientInstallerPath)); TopCatUIAutomation.Initialize(); if (!File.Exists(_activityData.HpacClientInstallerPath)) { throw new Exception("Could not find the HPAC Client Setup file Specified"); } HpacClientInstallationSetup(); HpacClientInstall(); } }
/// <summary> /// Sets the driver settings using Topcat. /// </summary> /// <param name="printerPreferenceData"></param> /// <param name="queueName"></param> public void ConfigureDriverSettings(PrinterPreferenceData printerPreferenceData, string queueName) { TopCatUIAutomation.Initialize(); //Launching the Printer preferences Window UpdateStatus("Launching the Printer preferences Window"); Process launch = new Process(); string command = $"/c rundll32 printui.dll,PrintUIEntry /e /n \"{queueName}\""; launch.StartInfo.Arguments = command; launch.StartInfo.Verb = "runas"; launch.StartInfo.FileName = "cmd.exe"; launch.StartInfo.CreateNoWindow = true; launch.StartInfo.UseShellExecute = false; launch.Start(); PrintPreferences printPreferences = new PrintPreferences(queueName); if (printPreferences.DriverWindow.IsAvailable(screenWaitTimeout)) { UpdateStatus("The Printer preferences window has been Launched"); PaperQualityTab(printerPreferenceData, printPreferences); EffectsTab(printerPreferenceData, printPreferences); FinishingTab(printerPreferenceData, printPreferences); OutputTab(printerPreferenceData, printPreferences); JobStorageTab(printerPreferenceData, printPreferences); ColorTab(printerPreferenceData, printPreferences); AdvanceTab(printerPreferenceData, printPreferences); printPreferences.OKButtonOkButton.WaitForAvailable(windowsTimeout); printPreferences.OKButtonOkButton.PerformHumanAction(x => x.Click(windowsTimeout)); //handling selections conflicts popup window if (printPreferences.SelectionsconflWindow.IsEnabled(windowsTimeout)) { printPreferences.YesButton6Button.PerformHumanAction(x => x.ClickWithMouse(MouseButton.Left, windowsTimeout)); } } else { throw new ArgumentException("The Queue name is not valid"); } }
/// <summary> /// Performs the print dialog task /// </summary> /// <param name="executionData"></param> private void PerformPrintTask(PluginExecutionData executionData) { string username = executionData.Credential.UserName; string password = executionData.Credential.Password; TopCatUIAutomation.Initialize(); _printLogin = new PrintLogin(UIAFramework.ManagedUIA); if (_printLogin.PrintLogin32770Window.IsAvailable()) { _printLogin.Edit1000Edit.ClickWithMouse(MouseButton.Left, WindowsTimeout); Thread.Sleep(humanTimeSpan); SendKeys.SendWait(username); _printLogin.Edit1001Edit.ClickWithMouse(MouseButton.Left, WindowsTimeout); Thread.Sleep(humanTimeSpan); SendKeys.SendWait(password); _printLogin.SubmitButton1Button.WaitForAvailable(WindowsTimeout); _printLogin.SubmitButton1Button.PerformHumanAction(x => x.ClickWithMouse(MouseButton.Left, WindowsTimeout)); } else { UpdateStatus("Could not launch ISecStar Client Popup"); } }
/// <summary> /// Execute the task of the DSSInstall activity. /// </summary> /// <param name="executionData"></param> /// <returns></returns> public PluginExecutionResult Execute(PluginExecutionData executionData) { _activityData = executionData.GetMetadata <DSSInstallActivityData>(); TopCatUIAutomation.Initialize(); if (!File.Exists(_activityData.SetupFilePath)) { return(new PluginExecutionResult(PluginResult.Failed, "Could not find the setup file")); } try { LocalLockToken dssLockToken = new LocalLockToken("DSS", new LockTimeoutData(TimeSpan.FromSeconds(60), _activityData.TransitionDelay == TimeSpan.FromSeconds(20) ? TimeSpan.FromMinutes(130) : TimeSpan.FromMinutes(10))); ExecutionServices.CriticalSection.Run(dssLockToken, StartSetup); } catch (Exception exception) { return(new PluginExecutionResult(PluginResult.Failed, exception.Message)); } return(new PluginExecutionResult(PluginResult.Passed)); }
/// <summary> /// Execute call for HP Easy Start Execution Engine /// </summary> /// <param name="executionData"></param> /// <returns></returns> public PluginExecutionResult Execute(PluginExecutionData executionData) { _activityData = executionData.GetMetadata <HpEasyStartActivityData>(); UpdateStatus("Retrieving the Printer Information"); //Retrieving the printer Randomly from the Selected Assets List Framework.Assets.IDeviceInfo printer = executionData.Assets.GetRandom <Framework.Assets.IDeviceInfo>(); IDevice device = DeviceConstructor.Create(printer); string modelName = device.GetDeviceInfo().ModelName; UpdateStatus(_activityData.IsWebPackInstallation ? "Retrieving the Full Web Pack Installer Information" : "Retrieving the HP Easy Start Installer Information"); if (!File.Exists(_activityData.HpEasyStartInstallerPath)) { return(new PluginExecutionResult(PluginResult.Failed, "Could not find the HP Easy Start Installer file/Web Pack file")); } TopCatUIAutomation.Initialize(); UpdateStatus(_activityData.IsWebPackInstallation ? "Copying Full Web Pack Installer to Local Temp Path" : "Copying HP Easy Start Installer to Local Temp Path"); string localSetupFile = Path.Combine(Path.GetTempPath(), Path.GetFileName(_activityData.HpEasyStartInstallerPath)); if (!File.Exists(localSetupFile)) { File.Copy(_activityData.HpEasyStartInstallerPath, localSetupFile); } UpdateStatus(_activityData.IsWebPackInstallation ? "Launching the Full Web Pack Installer" : "Launching the HP Easy Start Installer"); ProcessStartInfo pStartInfo = new ProcessStartInfo(localSetupFile) { UseShellExecute = true, Verb = "runas" }; Process.Start(pStartInfo); //Collate all the UI Maps to the TopCat Related Activity List <UIMaps.UIMap> installScreenList = new List <UIMaps.UIMap> { new HpEasyStartInstall("HP Easy Start Driver Download", printer.Address), new HpEasyDriverInstall("HP Easy Start Driver Installation", printer.Address, modelName, _activityData.PrintTestPage, _activityData.SetAsDefaultDriver) }; for (int i = 0; i < installScreenList.Count; i++) { if (_activityData.IsWebPackInstallation && i == 0) { continue; } else { try { var result = installScreenList.ElementAt(i).PerformAction(); if (result.Result != PluginResult.Passed) { return(result); } Thread.Sleep(20); } catch (Exception) { return(new PluginExecutionResult(PluginResult.Error, $"Failed to proceed beyond {installScreenList.ElementAt(i).ScreenName}")); } } } return(new PluginExecutionResult(PluginResult.Passed)); }