Exemplo n.º 1
0
        /// <summary>
        /// upgrades the print queue with the new driver
        /// </summary>
        /// <param name="pqmTask">contains the info about the driver to be upgraded to</param>
        private void UpgradePrintQueue(PrintQueueManagementTask pqmTask, SettingsDictionary pluginSettings)
        {
            var upgradeDriverInfo = (PrintDriverInfo)pqmTask.TargetObject;

            string printDriverPath = Path.Combine(pluginSettings["PrintDriverServer"], Environment.Is64BitOperatingSystem ? upgradeDriverInfo.InfX64 : upgradeDriverInfo.InfX86);

            StringBuilder upgradeDriverArgs = new StringBuilder();

            upgradeDriverArgs.Append(
                $"/ia /v \"Type 3 - User Mode\" /m \"{_localPrintQueueInfo.PrintDriver.DriverName}\"");
            upgradeDriverArgs.Append($" /n \"{_defaultPrintQueue.FullName}\"");
            upgradeDriverArgs.Append($" /f \"{printDriverPath}\"");
            upgradeDriverArgs.Append($" /l \"{Path.GetDirectoryName(printDriverPath)}\"");
            var action = new Action(() =>
            {
                var result = ProcessUtil.Execute("rundll32", $"printui.dll,PrintUIEntry { (object)upgradeDriverArgs.ToString()}");
                if (result.ExitCode != 0)
                {
                    pqmTask.Status = Status.Failed;
                }

                pqmTask.Status = Status.Passed;
                ExecutionServices.SystemTrace.LogInfo(
                    $"Upgraded the driver for the device: {_printQueueInfo.AssociatedAssetId}");
                device_textBox.Text = _printQueueInfo.AssociatedAssetId + @", " +
                                      GetDriverInfo(_defaultPrintQueue.FullName);
            });
            var token = new LocalLockToken(_defaultPrintQueue.FullName, TimeSpan.FromMinutes(5), TimeSpan.FromMinutes(5));

            ExecutionServices.CriticalSection.Run(token, action);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Performs any teardown activities for plugin which implements this interface
        /// </summary>
        public void Teardown()
        {
            var action = new Action(() =>
            {
                _configureScript = new TopCatScript(Path.Combine(Path.GetTempPath(), "TopCatScript", "CustomPrintSettings.tcx"), "CustomPrintSettings");
                TopCatExecutionController topCatExecutionController = new TopCatExecutionController(_configureScript);
                topCatExecutionController.Cleanup();
            });

            var token = new LocalLockToken(_defaultPrintQueue.FullName, TimeSpan.FromMinutes(5), TimeSpan.FromMinutes(5));

            ExecutionServices.CriticalSection.Run(token, action);
        }
Exemplo n.º 3
0
        public PluginExecutionResult Execute(PluginExecutionData executionData)
        {
            var activityData = executionData.GetMetadata <VpnActivityData>();

            string vpnValue  = executionData.Environment.PluginSettings[activityData.Name];
            var    vpnValues = vpnValue.Split(';');

            if (vpnValues.Length != 3)
            {
                return(new PluginExecutionResult(PluginResult.Error, "The plugin configuration is not defined correctly. Please contact your administrator"));
            }
            _vpnConfiguration = new VpnConfiguration
            {
                Name     = activityData.Name,
                ServerIp = vpnValues.ElementAt(0),
                Password = vpnValues.ElementAt(2)
            };
            if (vpnValues.ElementAt(1).Contains("\\"))
            {
                _vpnConfiguration.Domain   = vpnValues.ElementAt(1).Split('\\').First();
                _vpnConfiguration.UserName = vpnValues.ElementAt(1).Split('\\').Last();
            }
            else
            {
                _vpnConfiguration.Domain   = string.Empty;
                _vpnConfiguration.UserName = vpnValues.ElementAt(1);
            }
            if (_vpnConfiguration.Domain.Equals("."))
            {
                _vpnConfiguration.Domain = string.Empty;
            }
            _entryName = activityData.Name;
            try
            {
                var vpnLock = new LocalLockToken("VPN", new LockTimeoutData(TimeSpan.FromSeconds(30), TimeSpan.FromSeconds(30)));
                if (activityData.Connect)
                {
                    ExecutionServices.CriticalSection.Run(vpnLock, ConnectVpn);
                }
                else
                {
                    ExecutionServices.CriticalSection.Run(vpnLock, DisconnectVpn);
                }
            }
            catch (Exception exception)
            {
                return(new PluginExecutionResult(PluginResult.Failed, exception.Message));
            }

            return(new PluginExecutionResult(PluginResult.Passed));
        }
        /// <summary>
        /// Entrypoint for the Plugin Task Execution for HPAC Client Plugin
        /// </summary>
        /// <param name="executionData"></param>
        /// <returns></returns>
        public PluginExecutionResult Execute(PluginExecutionData executionData)
        {
            _activityData   = executionData.GetMetadata <HpacClientActivityData>();
            _pluginSettings = executionData.Environment.PluginSettings;
            _hpacServerIP   = executionData.Servers.FirstOrDefault().Address;

            try
            {
                LocalLockToken hpacClientLockToken = new LocalLockToken("HPACClient",
                                                                        new LockTimeoutData(TimeSpan.FromSeconds(60), TimeSpan.FromMinutes(10)));

                ExecutionServices.CriticalSection.Run(hpacClientLockToken, PluginTaskExecution);
            }
            catch (Exception exception)
            {
                return(new PluginExecutionResult(PluginResult.Failed, exception.Message));
            }

            return(new PluginExecutionResult(PluginResult.Passed));
        }
Exemplo n.º 5
0
        /// <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));
        }
Exemplo n.º 6
0
        /// <summary>
        /// Configures the print preferences of the print queue
        /// </summary>
        /// <param name="pqmTask">contains the info about print queue</param>
        private void ConfigureQueueForm(PrintQueueManagementTask pqmTask)
        {
            string queueName = _defaultPrintQueue.FullName;
            var    action    = new Action(() =>
            {
                PrintPreferences preferences =
                    new PrintPreferences(TopCat.TestApi.GUIAutomation.Enums.UIAFramework.ManagedUIA)
                {
                    DriverModel = _localPrintQueueInfo.PrintDriver.DriverName
                };

                ProcessUtil.Execute("cmd.exe", $"/c rundll32 printui.dll,PrintUIEntry /p /n \"{queueName}\"", TimeSpan.FromSeconds(shortTimeout));
                preferences.PrintPreferencesWindow.WaitForAvailable(shortTimeout);
                preferences.DeviceSettingsTabItem.Select(shortTimeout);
                preferences.InstallableOptionTreeItem.Select(shortTimeout);

                if (preferences.DuplexUnitfor2STreeItem.IsAvailable())
                {
                    preferences.DuplexUnitfor2STreeItem.Select(shortTimeout);
                }
                else
                {
                    preferences.DuplexUnitfor2SNTreeItem.Select(shortTimeout);
                }

                preferences.SelectListItem(pqmTask.Preference.Duplexer);
                preferences.OKButton1Button.Click(shortTimeout);

                ProcessUtil.Execute("cmd.exe", $"/c rundll32 printui.dll,PrintUIEntry /e /n \"{queueName}\"", TimeSpan.FromSeconds(shortTimeout));

                preferences.PrintPreferencesWindow.WaitForAvailable(shortTimeout);
                preferences.PrintingShortcutTabItem.Select(shortTimeout);


                preferences.SelectListItem(pqmTask.Preference.PaperSize);
                Thread.Sleep(_humanTimespan);
                preferences.SelectListItem(pqmTask.Preference.InputTray);
                Thread.Sleep(_humanTimespan);
                preferences.SelectListItem(pqmTask.Preference.PaperType);
                Thread.Sleep(_humanTimespan);
                preferences.SelectListItem(pqmTask.Preference.Orientation);
                Thread.Sleep(_humanTimespan);
                preferences.SelectListItem(pqmTask.Preference.DuplexValue);

                preferences.AdvancedTabItem.Select(shortTimeout);

                preferences.CopyCountmsctlsSpinner.SetValue(pqmTask.Preference.Copies);

                preferences.OKButton1Button.Click(shortTimeout);

                pqmTask.Status = Status.Passed;
            });

            //var tempScriptDirectory = Directory.CreateDirectory(Path.Combine(Path.GetTempPath(), "TopCatScript"));
            //File.WriteAllBytes(Path.Combine(tempScriptDirectory.FullName, "CustomPrintSettings.tcx"),
            //    ScriptResource.CustomPrintSettings);
            //File.WriteAllBytes(Path.Combine(tempScriptDirectory.FullName, "printPreferences.tcc"),
            //    ScriptResource.printPreferences);

            //_configureScript = new TopCatScript
            //(
            //    Path.Combine(tempScriptDirectory.FullName, "CustomPrintSettings.tcx"),
            //    "CustomPrintSettings"
            //);

            //_configureScript.Properties.Add
            //(
            //    "QueueName",
            //    _defaultPrintQueue.FullName
            //);
            //_configureScript.Properties.Add
            //(
            //    "Copies",
            //    pqmTask.Preference.Copies.ToString(System.Globalization.CultureInfo.InvariantCulture)
            //);
            //_configureScript.Properties.Add
            //(
            //    "PaperSize",
            //    pqmTask.Preference.PaperSize
            //);
            //_configureScript.Properties.Add
            //(
            //    "PaperSource",
            //    pqmTask.Preference.InputTray
            //);
            //_configureScript.Properties.Add
            //(
            //    "Orientation",
            //    pqmTask.Preference.Orientation
            //);
            //_configureScript.Properties.Add
            //(
            //    "DuplexValue",
            //    pqmTask.Preference.DuplexValue
            //);
            //_configureScript.Properties.Add
            //(
            //    "Duplexer",
            //    pqmTask.Preference.Duplexer
            //);
            //_configureScript.Properties.Add
            //(
            //    "DriverModel",
            //    _localPrintQueueInfo.PrintDriver.DriverName
            //);
            //TopCatExecutionController tcExecutionController = new TopCatExecutionController(_configureScript);
            //tcExecutionController.InstallPrerequisites(GlobalSettings.Items["TopCatSetup"]);
            //tcExecutionController.ExecuteTopCatTest();

            //string resultFile = tcExecutionController.GetResultFilePath(GlobalSettings.Items["DomainAdminUserName"]);
            //if (!string.IsNullOrEmpty(resultFile))
            //{
            //    XDocument resultDoc = XDocument.Load(resultFile);
            //    var successTests = resultDoc.Descendants("SuccessfulTests").First().Descendants("test");
            //    pqmTask.Status = successTests.Any() ? Status.Passed : Status.Failed;
            //}
            //else
            //{
            //    pqmTask.Status = Status.Failed;
            //}


            var token = new LocalLockToken(_defaultPrintQueue.FullName, TimeSpan.FromMinutes(5), TimeSpan.FromMinutes(5));

            ExecutionServices.CriticalSection.Run(token, action);
        }