/// <summary> /// Initializes this configuration control with the specified <see cref="PluginConfigurationData" />. /// </summary> /// <param name="configuration">The configuration data.</param> /// <param name="environment">Information about the plugin environment.</param> public void Initialize(PluginConfigurationData configuration, PluginEnvironment environment) { ScanToJobStorageData activityData = configuration.GetMetadata <ScanToJobStorageData>(ConverterProvider.GetMetadataConverters()); ConfigureControls(activityData); assetSelectionControl.Initialize(configuration.Assets, DeviceAttributes); assetSelectionControl.AdfDocuments = configuration.Documents; }
/// <summary> /// The execute method for Scan To JobStorage plugin. /// </summary> /// <param name="executionData"> /// The execution data. /// </param> /// <returns> /// The <see cref="PluginExecutionResult"/>. /// </returns> public PluginExecutionResult Execute(PluginExecutionData executionData) { ScanToJobStorageData data = executionData.GetMetadata <ScanToJobStorageData>(ConverterProvider.GetMetadataConverters()); JobStorageScanManager manager = new JobStorageScanManager(executionData); manager.ActivityStatusChanged += UpdateStatus; manager.DeviceSelected += UpdateDevice; return(manager.RunScanActivity()); }
/// <summary> /// Converts the specified XML metadata to the new version. /// </summary> /// <param name="xml">The XML metadata.</param> /// <returns>System.Xml.Linq.XElement.</returns> public XElement Convert(XElement xml) { Version v4_10 = new Version("4.10.0.0"); Version v4_12 = new Version("4.12.0.0"); // Get XML root namespace for manual conversion XNamespace rootNS = xml.GetDefaultNamespace(); //Determine what data version we are working with. Version version = ParseVersionFromMetadata(xml); ScanToJobStorageData resultData = null; if (version < v4_10) { //Convert old metadata to new schema. resultData = new ScanToJobStorageData() { AutomationPause = GetTimeSpan(xml, "AutomationPause"), IsPinRequired = GetBool(xml, "IsPinRequired"), JobName = GetValue(xml, "JobName"), Pin = GetValue(xml, "Pin") }; } else if (version >= v4_10 && version < v4_12) { //Deserialize what is there. It's possible Some ScanOptions were saved. resultData = Serializer.Deserialize <ScanToJobStorageData>(xml); } else { //No Conversion necessary return(xml); } //Only update these next properties if they are found in the metadata root. if (Exists(xml, "LockTimeouts", true)) { resultData.ScanOptions.LockTimeouts = GetLockTimeoutData(rootNS, xml); } if (Exists(xml, "PageCount", true)) { resultData.ScanOptions.PageCount = GetInt(xml, "PageCount"); } if (Exists(xml, "UseAdf", true)) { resultData.ScanOptions.UseAdf = GetBool(xml, "UseAdf"); } return(Serializer.Serialize(resultData)); }
private void ConfigureControls(ScanToJobStorageData data) { pin_TextBox.Text = data.Pin; pinRequired_CheckBox.Checked = data.IsPinRequired; lockTimeoutControl.Initialize(data.ScanOptions.LockTimeouts); pageCount_NumericUpDown.Value = data.ScanOptions.PageCount; assetSelectionControl.AutomationPause = data.AutomationPause; assetSelectionControl.UseAdf = data.ScanOptions.UseAdf; _scanOptions = data.ScanOptions; if (data.ApplicationAuthentication) { radioButton_ScanToJobStorage.Checked = true; } else { radioButton_SignInButton.Checked = true; } comboBox_AuthProvider.SelectedValue = data.AuthProvider; }
/// <summary> /// Validates the given metadata against the ScanToJobStorage Activity data. /// </summary> /// <param name="configurationData">The configuration data.</param> /// <returns>true if valid</returns> public bool ValidateMetadata(ref PluginConfigurationData configurationData) { bool validData = true; ScanToJobStorageData activityData = null; try { activityData = configurationData.GetMetadata <ScanToJobStorageData>(ConverterProvider.GetMetadataConverters()); } catch { activityData = new ScanToJobStorageData(); validData = false; } configurationData = new PluginConfigurationData(activityData, ScanToJobStorageConfigControl.Version); return(validData); }
/// <summary> /// Creates and returns a <see cref="PluginConfigurationData" /> instance containing the /// configuration data from this control. /// </summary> /// <returns>The configuration data.</returns> public PluginConfigurationData GetConfiguration() { ScanToJobStorageData data = new ScanToJobStorageData() { Pin = pin_TextBox.Text, IsPinRequired = pinRequired_CheckBox.Checked, AutomationPause = assetSelectionControl.AutomationPause, ScanOptions = _scanOptions, ApplicationAuthentication = radioButton_ScanToJobStorage.Checked, AuthProvider = (AuthenticationProvider)comboBox_AuthProvider.SelectedValue }; data.ScanOptions.UseAdf = assetSelectionControl.UseAdf; data.ScanOptions.LockTimeouts = lockTimeoutControl.Value; data.ScanOptions.PageCount = (int)pageCount_NumericUpDown.Value; return(new PluginConfigurationData(data, Version) { Assets = assetSelectionControl.AssetSelectionData, Documents = assetSelectionControl.AdfDocuments }); }
/// <summary> /// Scan Manager for the ScanToJobStorage plugin. /// </summary> public JobStorageScanManager(PluginExecutionData executionData) : base(executionData) { _data = executionData.GetMetadata <ScanToJobStorageData>(ConverterProvider.GetMetadataConverters()); ScanOptions = _data.ScanOptions; }