/// <summary> /// Validates the given metadata against the PrintFromUsb Activity data. /// </summary> /// <param name="configurationData">The configuration data.</param> /// <returns>true if valid</returns> public bool ValidateMetadata(ref PluginConfigurationData configurationData) { bool validData = true; PrintFromUsbActivityData activityData = null; try { activityData = configurationData.GetMetadata <PrintFromUsbActivityData>(); } catch { activityData = new PrintFromUsbActivityData(); validData = false; } configurationData = new PluginConfigurationData(activityData, PrintFromUsbConfigControl.Version); return(validData); }
private PluginExecutionResult RunApp(IDevice device) { try { PluginExecutionResult result = new PluginExecutionResult(PluginResult.Failed); _activityData = _executionData.GetMetadata <PrintFromUsbActivityData>(); IUsbApp usbApp = UsbAppFactory.Create(device); IAuthenticator auth = AuthenticatorFactory.Create(device, _executionData.Credential, AuthenticationProvider.Auto); usbApp.WorkflowLogger = auth.WorkflowLogger = _workflowLogger; var preparationManager = DevicePreparationManagerFactory.Create(device); preparationManager.InitializeDevice(true); preparationManager.WorkflowLogger = _workflowLogger; // need to add the ability for user to set eager or lazy authentication //AuthenticationMode am = (_data.ApplicationAuthentication == false) ? AuthenticationMode.Eager : AuthenticationMode.Lazy; usbApp.Pacekeeper = auth.Pacekeeper = new Pacekeeper(TimeSpan.FromSeconds(2)); _workflowLogger.RecordEvent(DeviceWorkflowMarker.ActivityBegin); usbApp.LaunchPrintFromUsb(auth, AuthenticationMode.Lazy); UpdateStatus("The Print From USB app is launched"); usbApp.SelectUsbPrint(_activityData.UsbName); UpdateStatus("The USB is selected"); usbApp.SelectFile(); UpdateStatus("File to Print is selected"); if (usbApp.ExecutePrintJob()) { UpdateStatus("The selected file is printed"); result = new PluginExecutionResult(PluginResult.Passed); } preparationManager.NavigateHome(); if (preparationManager.SignOutRequired()) { preparationManager.SignOut(); } _workflowLogger.RecordEvent(DeviceWorkflowMarker.ActivityEnd); return(result); } catch (DeviceCommunicationException ex) { GatherTriageData(device, ex.ToString()); return(new PluginExecutionResult(PluginResult.Failed, ex.Message, "Device communication error.")); } catch (DeviceInvalidOperationException ex) { GatherTriageData(device, ex.ToString()); return(new PluginExecutionResult(PluginResult.Failed, ex.Message, "Device automation error.")); } catch (DeviceWorkflowException ex) { GatherTriageData(device, ex.ToString()); return(new PluginExecutionResult(PluginResult.Failed, ex, "Device workflow error.")); } catch (Exception ex) { GatherTriageData(device, ex.ToString()); throw; } }
/// <summary> /// Initializes the configuration control with the specified settings. /// </summary> /// <param name="configuration"></param> /// <param name="environment"></param> public void Initialize(PluginConfigurationData configuration, PluginEnvironment environment) { _data = configuration.GetMetadata <PrintFromUsbActivityData>(); firmware_assetSelectionControl.Initialize(configuration.Assets, AssetAttributes.Printer); textBoxUsbName.Text = _data.UsbName; }
/// <summary> /// Initializes the configuration control with default settings. /// </summary> /// <param name="environment"></param> public void Initialize(PluginEnvironment environment) { _data = new PrintFromUsbActivityData(); firmware_assetSelectionControl.Initialize(AssetAttributes.Printer); }