private bool GetLanFaxDefaultValues(string unc, string domain, string username, string password, JediDevice device, string fieldChanged) { bool success = true; string endpoint = "fax"; string urn = "urn:hp:imaging:con:service:fax:FaxService:ServiceDefaults"; try { WebServiceTicket tic = device.WebServices.GetDeviceTicket(endpoint, urn); //Change values success &= tic.FindElement("FaxMethod").Value.Equals("lanFaxService"); success &= tic.FindElement("UserName").Value.Equals(username, StringComparison.OrdinalIgnoreCase); success &= tic.FindElement("UNCPath").Value.Equals(unc, StringComparison.OrdinalIgnoreCase); success &= tic.FindElement("DomainName").Value.Equals(domain, StringComparison.OrdinalIgnoreCase); } catch (Exception ex) { Logger.LogError($"Failed to set field {fieldChanged}, {ex.Message}"); success = false; } if (!success) { _failedSettings.AppendLine($"Failed to set field {fieldChanged}"); } return(success); }
private bool SetWindowsDomains(DataPair <string> pair, JediDevice device, AssetInfo assetInfo, string fieldChanged, PluginExecutionData data) { string activityUrn = "urn:hp:imaging:con:service:windowsauthenticationagent:WindowsAuthenticationAgentService:DomainNames"; string endpoint = "windowsauthenticationagent"; Func <WebServiceTicket, WebServiceTicket> change = n => { string[] domains = pair.Key.Split(';'); if (domains.Length != 0) { try { string ticketString = n.ToString(); string addDomain = ">"; ticketString = ticketString.Remove(ticketString.Length - 2); foreach (string domain in domains) { addDomain += $@"<dd3:DomainName>{domain}</dd3:DomainName>"; } addDomain += @"</dd3:DomainNames>"; n = new WebServiceTicket(ticketString + addDomain); return(n); } catch (Exception e) { ExecutionServices.SystemTrace.LogDebug($@"Device {device.Address} failed to set domains {e.Message}"); throw; } } return(n); }; return(UpdateField(change, device, pair, activityUrn, endpoint, assetInfo, fieldChanged, data)); }
public void SetDefaultPassword(string address, string password) { var defPWUrn = "urn:hp:imaging:con:service:security:SecurityService:AdministratorAuthenticationSettings"; string endpoint = "security"; ExecutionServices.SystemTrace.LogDebug($"{address}: Setting default password"); JediDevice dev; try { dev = new JediDevice(address, ""); WebServiceTicket tic = dev.WebServices.GetDeviceTicket(endpoint, defPWUrn); if (password.Length < 8) { tic.FindElement("MinLength").SetValue(password.Length - 1); tic.FindElement("IsPasswordComplexityEnabled").SetValue("false"); } tic.FindElement("Password").SetValue(password); tic.FindElement("PasswordStatus").SetValue("set"); dev.WebServices.PutDeviceTicket("security", defPWUrn, tic, false); dev = new JediDevice(address, password); ExecutionServices.SystemTrace.LogDebug($"{address}: Default password set"); } catch (Exception exception) { ExecutionServices.SystemTrace.LogError(exception.Message); dev = new JediDevice(address, password); } //disposing the device dev.Dispose(); }
/// <summary> /// Interface function to update and log device fields. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="ChangeValue"></param> /// <param name="device"></param> /// <param name="data"></param> /// <param name="urn"></param> /// <param name="endpoint"></param> /// <param name="assetInfo"></param> /// <param name="activity"></param> /// <param name="pluginExecutionData"></param> /// <returns>Success bool</returns> public bool UpdateField <T>(Func <WebServiceTicket, WebServiceTicket> ChangeValue, JediDevice device, DataPair <T> data, string urn, string endpoint, AssetInfo assetInfo, string fieldChanged, PluginExecutionData pluginData) { bool success; if (data != null && data.Value) { DeviceConfigResultLog log = new DeviceConfigResultLog(pluginData, assetInfo.AssetId); try { WebServiceTicket tic = device.WebServices.GetDeviceTicket(endpoint, urn); ChangeValue(tic); device.WebServices.PutDeviceTicket(endpoint, urn, tic); success = true; } catch (Exception ex) { Logger.LogError($"Failed to set field {fieldChanged}, {ex.Message}"); _failedSettings.AppendLine($"Failed to set field {fieldChanged}, {ex.Message}"); success = false; } log.FieldChanged = fieldChanged; log.Result = success ? "Passed" : "Failed"; log.Value = data.Key.ToString(); log.ControlChanged = "Fax Default"; ExecutionServices.DataLogger.Submit(log); } else { success = true; } return(success); }
public bool UpdateField <T>(Func <WebServiceTicket, bool> getProperty, JediDevice device, DataPair <T> data, string urn, string endpoint, string activityName) { bool success; if (data != null && data.Value) { try { WebServiceTicket tic = device.WebServices.GetDeviceTicket(endpoint, urn); getProperty(tic); device.WebServices.PutDeviceTicket(endpoint, urn, tic); success = true; } catch (Exception ex) { Logger.LogError($"Failed to set field {activityName}, {ex.Message}"); success = false; } } else { success = true; } if (!success) { _failedSettings.Append($"{activityName}, "); } return(success); }
private void AddNtsServer(WebServiceTicket webTicket) { var dsd = webTicket.GetNamespaceOfPrefix("dsd"); var dd = webTicket.GetNamespaceOfPrefix("dd"); XNamespace timeNs = XNamespace.Get("http://www.hp.com/schemas/imaging/con/service/time/2009/02/20"); webTicket.Element(timeNs + "SNTPTimeSynchronization").Add(new XElement(dd + "SNTPServerAddress")); }
private bool SetFTPQuickSetData(IEnumerable <FTPQuickSetData> group, JediDevice device, AssetInfo assetInfo, string fieldChanged, PluginExecutionData datas) { string activityUrn = "urn:hp:imaging:con:service:folder:FolderService:PredefinedJobs"; string endpoint = "folder"; _nameSpaceDictionary = new Dictionary <string, XNamespace> { { "dsd", _dsd }, { "dd", _dd }, { "folder", _folderNs }, { "security", _securityNs }, { "dd2", _dd2 }, { "dd3", _dd3 } }; var stnfQuickSetDatas = group as IList <FTPQuickSetData> ?? group.ToList(); DataPair <IEnumerable <FTPQuickSetData> > quick = new DataPair <IEnumerable <FTPQuickSetData> > { Value = true, Key = stnfQuickSetDatas }; Func <WebServiceTicket, WebServiceTicket> change = n => { var folderPredefinedJobs = new XElement(_folderNs + "PredefinedJobs", new XAttribute(XNamespace.Xmlns + "dsd", _dsd.NamespaceName), new XAttribute(XNamespace.Xmlns + "security", _securityNs.NamespaceName), new XAttribute(XNamespace.Xmlns + "dd2", _dd2.NamespaceName), new XAttribute(XNamespace.Xmlns + "dd3", _dd3.NamespaceName), new XAttribute(XNamespace.Xmlns + "dd", _dd.NamespaceName), new XAttribute(XNamespace.Xmlns + "folder", _folderNs.NamespaceName)); foreach (FTPQuickSetData data in stnfQuickSetDatas) { string scanSettings = string.Format(Resources.scanSettings, data.ScanSetData.ContentOrientation.Key, data.ScanSetData.OriginalSize.Key, data.ScanSetData.OriginalSides.Key); string attachmentSettings = string.Format(Resources.attachmentSettings, data.FileSetData.FileType.Key, data.FileSetData.Resolution.Key); string displaySettings = string.Format(Resources.displaySettings, data.Name, _priority++); List <string> sendFTPDestinations = new List <string>(); sendFTPDestinations.Add(string.Format(Resources.sendFTPDestination, data.FTPServer, data.PortNumber, data.DirectoryPath, data.UserName, data.FTPProtocol)); var sendFolderDestination = String.Join(String.Empty, sendFTPDestinations); //string extraJob = string.Format(Resources.sendFTPDestination, data.FTPServer.FirstOrDefault()); string sendFTPDestination = string.Format(Resources.sendFTPDestination, data.FTPServer, data.PortNumber, data.DirectoryPath, data.UserName, data.FTPProtocol); string folderPredefinedJob = string.Format(Resources.sendFolderPredefinedJob, data.Name, Resources.notificationSettings, scanSettings, data.ScanSetData.ImagePreview.Key, attachmentSettings, sendFTPDestination, displaySettings, sendFTPDestination); folderPredefinedJobs.Add(ParseFragment("folder:PredefinedJob", folderPredefinedJob, _nameSpaceDictionary)); } n = new WebServiceTicket(folderPredefinedJobs); return(n); }; return(UpdateField(change, device, quick, activityUrn, endpoint, assetInfo, fieldChanged, datas)); }
/// <summary> /// Sets the device URN. /// </summary> /// <param name="timeout">Information to put into device settings.</param> public void SetUrn(string endPoint, string uri, WebServiceTicket ticket) { try { var getResultTicket = _webServices.PutDeviceTicket(endPoint, uri, ticket, getResult: true); } catch (WebServicesInvalidOperationException ex) when(StringMatcher.IsMatch("not valid", ex.Message, StringMatch.Contains, true)) { throw new ArgumentOutOfRangeException(nameof(ticket), ticket, "Value is not within the allowable range for the device."); } }
private bool SetScanFaxQuickSetData(IEnumerable <ScanFaxQuickSetData> group, JediDevice device, AssetInfo assetInfo, string fieldChanged, PluginExecutionData datas) { string activityUrn = "urn:hp:imaging:con:service:fax:FaxService:PredefinedJobs"; string endpoint = "fax"; _nameSpaceDictionary = new Dictionary <string, XNamespace> { { "faxdd", _faxdd }, { "dsd", _dsd }, { "fax", _faxNs }, { "dd3", _dd3 }, { "security", _securityNs }, { "dd", _dd } }; var scanFaxQuickSetDatas = group as IList <ScanFaxQuickSetData> ?? group.ToList(); DataPair <IEnumerable <ScanFaxQuickSetData> > quick = new DataPair <IEnumerable <ScanFaxQuickSetData> > { Value = true, Key = scanFaxQuickSetDatas }; Func <WebServiceTicket, WebServiceTicket> change = n => { var usbPredefinedJobs = new XElement(_faxNs + "PredefinedJobs", new XAttribute(XNamespace.Xmlns + "faxdd", _faxdd.NamespaceName), new XAttribute(XNamespace.Xmlns + "dsd", _dsd.NamespaceName), new XAttribute(XNamespace.Xmlns + "security", _securityNs.NamespaceName), new XAttribute(XNamespace.Xmlns + "dd3", _dd3.NamespaceName), new XAttribute(XNamespace.Xmlns + "dd", _dd.NamespaceName), new XAttribute(XNamespace.Xmlns + "fax", _faxNs.NamespaceName) ); foreach (ScanFaxQuickSetData data in scanFaxQuickSetDatas) { string scanSettings = string.Format(Resources.scanSettings, data.ScanSetData.ContentOrientation.Key, data.ScanSetData.OriginalSize.Key, data.ScanSetData.OriginalSides.Key); string attachmentSettings = string.Format(Resources.attachmentSettings, data.FileSetData.FileType.Key, data.FileSetData.Resolution.Key); string displaySettings = string.Format(Resources.displaySettings, data.Name, _priority++.ToString()); string faxSendDestination = string.Format(Resources.sendFaxDestination, data.Number); string faxPredefinedJob = string.Format(Resources.sendFaxPredefinedJob, Resources.notificationSettings, scanSettings, data.ScanSetData.ImagePreview.Key, faxSendDestination, attachmentSettings, displaySettings); usbPredefinedJobs.Add(ParseFragment("fax:PredefinedSendJob", faxPredefinedJob, _nameSpaceDictionary)); } n = new WebServiceTicket(usbPredefinedJobs); return(n); }; return(UpdateField(change, device, quick, activityUrn, endpoint, assetInfo, fieldChanged, datas)); }
/// <summary> /// Get Inactivity Timeout (ms) /// </summary> private int GetInactivityTimeout() { int inactivityTimeOut = 0; string activityUrn = "urn:hp:imaging:con:service:uiconfiguration:UIConfigurationService"; string endpoint = "uiconfiguration"; WebServiceTicket tic = Device.WebServices.GetDeviceTicket(endpoint, activityUrn); if (!Int32.TryParse(tic.FindElement("InactivityTimeoutInSeconds").Value, out inactivityTimeOut)) { UpdateStatus("Get Inactivity Timeout failed. It will use 60 for Inactivity Timeout."); inactivityTimeOut = 60; } return(inactivityTimeOut * 1000); }
private void RestorePJL(string pjlMode) { JediDevice device = new JediDevice(_address, _password); string urn = "urn:hp:imaging:con:service:security:SecurityService"; string endpoint = "security"; WebServiceTicket tic = device.WebServices.GetDeviceTicket(endpoint, urn); string oldValue = tic.FindElement("PjlDeviceAccess").Value; if (pjlMode != oldValue) { LogDebug("Disabling PJL"); tic.FindElement("PjlDeviceAccess").SetValue(pjlMode); device.WebServices.PutDeviceTicket(endpoint, urn, tic); } }
private string AllowPJLAnyway() { JediDevice device = new JediDevice(_address, _password); string urn = "urn:hp:imaging:con:service:security:SecurityService"; string endpoint = "security"; WebServiceTicket tic = device.WebServices.GetDeviceTicket(endpoint, urn); string oldValue = tic.FindElement("PjlDeviceAccess").Value; if (oldValue == "disabled") { LogDebug("Abling PJL"); tic.FindElement("PjlDeviceAccess").SetValue("enabled"); device.WebServices.PutDeviceTicket(endpoint, urn, tic); } return(oldValue); }
public static bool EnablePJL(IDevice device) { try { JediDevice jediDevice = new JediDevice(device.Address, device.AdminPassword); string urn = "urn:hp:imaging:con:service:security:SecurityService"; string endpoint = "security"; WebServiceTicket tic = jediDevice.WebServices.GetDeviceTicket(endpoint, urn); tic.FindElement("PjlDeviceAccess").SetValue("enabled"); jediDevice.WebServices.PutDeviceTicket(endpoint, urn, tic); } catch (Exception e) { ExecutionServices.SystemTrace.LogInfo(e); throw; } return(true); }
private void AddSmtpServer(WebServiceTicket webTicket, List <string> dataStrings) { bool useSsl; bool.TryParse(dataStrings[3], out useSsl); var dsd = webTicket.GetNamespaceOfPrefix("dsd"); var dd = webTicket.GetNamespaceOfPrefix("dd"); XNamespace securityns = XNamespace.Get("http://www.hp.com/schemas/imaging/con/security/2009/02/11"); XElement smtpserverSettings = new XElement(dsd + "SMTPServerSettings", new XElement(dd + "NetworkID", dataStrings[0]), new XElement(dd + "Port", dataStrings[1]), new XElement(dd + "MaxAttachmentSize", dataStrings[2]), new XElement(securityns + "AuthenticationSettings", new XElement("CredentialType", "hp_simple_v1"), new XElement("SimpleAuthenticationSettings", new XElement(dd + "PasswordStatus", "notSet"))), new XElement(dd + "UseMFPUsersCredentials", "true"), new XElement(dd + "UseSSL", useSsl.ToString().ToLower()), new XElement(dsd + "ValidateServerCertificate", "disabled")); webTicket.Element(dsd + "SMTPServersWithSettings").Add(smtpserverSettings); }
private bool SetEmailQuickSetData(IEnumerable <EmailQuickSetData> group, JediDevice device, AssetInfo assetInfo, string fieldChanged, PluginExecutionData data) { const string activityUrn = "urn:hp:imaging:con:service:email:EmailService:PredefinedJobs"; const string endpoint = "email"; _nameSpaceDictionary = new Dictionary <string, XNamespace> { { "dsd", _dsd }, { "dd", _dd }, { "email", _emailNs } }; var emailQuickSetDatas = group as IList <EmailQuickSetData> ?? group.ToList(); DataPair <IEnumerable <EmailQuickSetData> > quick = new DataPair <IEnumerable <EmailQuickSetData> > { Value = true, Key = emailQuickSetDatas }; Func <WebServiceTicket, WebServiceTicket> change = n => { var emailPredefinedJobs = new XElement(_emailNs + "PredefinedJobs", new XAttribute(XNamespace.Xmlns + "dsd", _dsd.NamespaceName), new XAttribute(XNamespace.Xmlns + "dd", _dd.NamespaceName), new XAttribute(XNamespace.Xmlns + "email", _emailNs.NamespaceName)); foreach (var emailQuickSetData in emailQuickSetDatas) { string setFrom = emailQuickSetData.DefaultFrom.Contains("Default") ? "disabled" : "enabled"; string scanSettings = string.Format(Resources.scanSettings, emailQuickSetData.ScanSetData.ContentOrientation.Key, emailQuickSetData.ScanSetData.OriginalSize.Key, emailQuickSetData.ScanSetData.OriginalSides.Key); string attachmentSettings = string.Format(Resources.attachmentSettings, emailQuickSetData.FileSetData.FileType.Key, emailQuickSetData.FileSetData.Resolution.Key); string emailSettings = string.Format(Resources.emailSettings, setFrom); string displaySettings = string.Format(Resources.displaySettings, emailQuickSetData.Name, _priority++); string emailPredefinedJob = string.Format(Resources.emailPredefinedJob, emailQuickSetData.Name, Resources.notificationSettings, scanSettings, emailQuickSetData.ScanSetData.ImagePreview.Key, attachmentSettings, emailSettings, displaySettings); emailPredefinedJobs.Add(ParseFragment("email:PredefinedJob", emailPredefinedJob, _nameSpaceDictionary)); } n = new WebServiceTicket(emailPredefinedJobs); return(n); }; return(UpdateField(change, device, quick, activityUrn, endpoint, assetInfo, fieldChanged, data)); }
private bool SetLanFaxDefaultValues(string unc, string domain, string username, string password, JediDevice device, AssetInfo assetInfo, string fieldChanged, PluginExecutionData pluginData) { bool success = false; string endpoint = "fax"; string urn = "urn:hp:imaging:con:service:fax:FaxService:ServiceDefaults"; DeviceConfigResultLog log = new DeviceConfigResultLog(pluginData, assetInfo.AssetId); try { WebServiceTicket tic = device.WebServices.GetDeviceTicket(endpoint, urn); //Change values tic.FindElement("FaxMethod").SetValue("lanFaxService"); tic.FindElement("UserName").SetValue(username); tic.FindElement("UNCPath").SetValue(unc); tic.FindElement("DomainName").SetValue(domain); string ticketString = tic.ToString(); string insertString = $@"<dd:Password>{password}</dd:Password>"; string searchString = @"</dd:UserName>"; int foundLocation = ticketString.IndexOf(searchString); ticketString = ticketString.Insert(foundLocation + searchString.Length, Environment.NewLine + insertString); tic = new WebServiceTicket(ticketString); device.WebServices.PutDeviceTicket(endpoint, urn, tic); success = true; } catch (Exception ex) { Logger.LogError($"Failed to set field {log.FieldChanged}, {ex.Message}"); _failedSettings.AppendLine($"Failed to set field {log.FieldChanged}, {ex.Message}"); success = false; } log.FieldChanged = fieldChanged; log.Result = success ? "Passed" : "Failed"; log.Value = $@"Method:Lanfax UserName:{username} Domain:{domain}"; log.ControlChanged = "Fax Default"; ExecutionServices.DataLogger.Submit(log); return(success); }
private bool SetCopyQuickSetData(IEnumerable <CopyQuickSetData> group, JediDevice device, AssetInfo assetInfo, string fieldChanged, PluginExecutionData datas) { string activityUrn = "urn:hp:imaging:con:service:copy:CopyService:PredefinedJobs"; string endpoint = "copy"; _nameSpaceDictionary = new Dictionary <string, XNamespace> { { "dsd", _dsd }, { "dd", _dd }, { "copy", _copyNs }, { "finishing", _finishingNs } }; var copyQuickSetDatas = group as IList <CopyQuickSetData> ?? group.ToList(); DataPair <IEnumerable <CopyQuickSetData> > quick = new DataPair <IEnumerable <CopyQuickSetData> > { Value = true, Key = copyQuickSetDatas }; Func <WebServiceTicket, WebServiceTicket> change = n => { var copyPredefinedJobs = new XElement(_copyNs + "PredefinedJobs", new XAttribute(XNamespace.Xmlns + "dsd", _dsd.NamespaceName), new XAttribute(XNamespace.Xmlns + "dd", _dd.NamespaceName), new XAttribute(XNamespace.Xmlns + "copy", _copyNs.NamespaceName)); foreach (CopyQuickSetData data in copyQuickSetDatas) { string copyScanSettings = string.Format(Resources.copyScanSettings, data.ScanSetData.ContentOrientation.Key, data.ScanSetData.OriginalSize.Key, data.ScanSetData.OriginalSides.Key); string copySettings = string.Format(Resources.copySettings, data.Copies); string displaySettings = string.Format(Resources.displaySettings, data.Name, _priority++); string copyPredefinedJob = string.Format(Resources.copyPredefinedJob, data.Name, copyScanSettings, copySettings, data.ScanSetData.ImagePreview.Key, displaySettings); copyPredefinedJobs.Add(ParseFragment("copy:PredefinedJob", copyPredefinedJob, _nameSpaceDictionary)); } n = new WebServiceTicket(copyPredefinedJobs); return(n); }; return(UpdateField(change, device, quick, activityUrn, endpoint, assetInfo, fieldChanged, datas)); }
public void SetDefaultPassword(string address, string password) { var defPWUrn = "urn:hp:imaging:con:service:security:SecurityService:AdministratorAuthenticationSettings"; string endpoint = "security"; ExecutionServices.SystemTrace.LogDebug($"{address}: Setting default password"); if (_activityData.EnableDefaultPW) { JediDevice dev; try { dev = new JediDevice(address, ""); WebServiceTicket tic = null; Retry.WhileThrowing <DeviceCommunicationException>(() => tic = dev.WebServices.GetDeviceTicket(endpoint, defPWUrn), 10, TimeSpan.FromSeconds(6)); if (tic == null) { throw new DeviceCommunicationException("Unable to connect to device to set password."); } if (password.Length < 8) { tic.FindElement("MinLength").SetValue(password.Length - 1); tic.FindElement("IsPasswordComplexityEnabled").SetValue("false"); } tic.FindElement("Password").SetValue(password); tic.FindElement("PasswordStatus").SetValue("set"); dev.WebServices.PutDeviceTicket("security", defPWUrn, tic, false); dev = new JediDevice(address, password); ExecutionServices.SystemTrace.LogDebug($"{address}: Default password set"); } catch (Exception exception) { ExecutionServices.SystemTrace.LogError(exception.Message); dev = new JediDevice(address, password); } //disposing the device dev.Dispose(); } }
public JediDevice SetDefaultPassword(string address, string password) { var defPWUrn = "urn:hp:imaging:con:service:security:SecurityService:AdministratorAuthenticationSettings"; string endpoint = "security"; JediDevice dev; try { dev = new JediDevice(address, ""); WebServiceTicket tic = dev.WebServices.GetDeviceTicket(endpoint, defPWUrn); tic.FindElement("Password").SetValue(password); tic.FindElement("PasswordStatus").SetValue("set"); dev.WebServices.PutDeviceTicket("security", defPWUrn, tic, false); dev = new JediDevice(address, password); } catch (Exception) { dev = new JediDevice(address, password); } return(dev); }
/// <summary> /// Gets the device URN. /// </summary> /// <returns>WebTicket.</returns> public WebServiceTicket GetUrn(string endPoint, string uri) { WebServiceTicket ticket = _webServices.GetDeviceTicket(endPoint, uri); return(ticket); }
private void ReadFirmwareDump(string[] bundleFiles) { string[] separator = { Environment.NewLine }; //extract the file; var tempDumpDirectory = Directory.CreateDirectory(Path.Combine(Path.GetTempPath(), "Dump")); var dumpUtilityFileName = Path.Combine(tempDumpDirectory.FullName, "FimDumpUtility.exe"); File.WriteAllBytes(dumpUtilityFileName, ResourceDump.FimDumpUtility); //Get .bdl files from directory //Extract data //populate datagridview //refresh _data.FWBundleInfo.Clear(); AssetIdCollection assetIds = assetSelectionControl.AssetSelectionData.SelectedAssets; AssetInfoCollection assets = Framework.ConfigurationServices.AssetInventory.GetAssets(assetIds); var col = assets.OfType <PrintDeviceInfo>(); Dictionary <string, ModelFileMap> nameModel = new Dictionary <string, ModelFileMap>(); string endpoint = "fim"; string urn = "urn:hp:imaging:con:service:fim:FIMService"; foreach (var printer in col) { SetDefaultPassword(printer.Address, printer.AdminPassword); ///Get way of finding the product family if (!nameModel.ContainsKey(printer.AssetId)) { ModelFileMap map = new ModelFileMap(); JediDevice device = new JediDevice(printer.Address, printer.AdminPassword); WebServiceTicket tic = device.WebServices.GetDeviceTicket(endpoint, urn); var ident = tic.FindElements("AssetIdentifier").First().Value; map.ProductFamily = ident;// "6D6670-0055";// Bugatti"696D66-0015"; nameModel.Add(printer.AssetId, map); } } //_data.AssetMapping = nameModel; foreach (string firmwareFile in bundleFiles) { FirmwareData fwData = new FirmwareData(); FileInfo fInfo = new FileInfo(firmwareFile); var fileSize = fInfo.Length / (1024 * 1024); var fileSizeMb = (int)((fileSize / 50.0) * 6); fwData.FlashTimeOutPeriod = (int)TimeSpan.FromMinutes(fileSizeMb).TotalMilliseconds; var result = ProcessUtil.Execute(dumpUtilityFileName, $"-o {tempDumpDirectory.FullName} \"{firmwareFile}\""); var outputLines = result.StandardOutput.Split(separator, StringSplitOptions.None); var revision = outputLines.FirstOrDefault(x => x.Contains("Version")); if (string.IsNullOrEmpty(revision)) { MessageBox.Show( $@"An error occurred while reading firmware revision information. Please check the firmware file {firmwareFile} and try again. Read Aborted", @"Firmware File Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); return; } revision = revision.Substring(revision.IndexOf(':') + 1).Trim(); fwData.FirmwareRevision = revision.Split(' ').First(); var version = outputLines.FirstOrDefault(x => x.Contains("Description"))?.Trim(); if (string.IsNullOrEmpty(version)) { MessageBox.Show( @"An error occurred while reading firmware version information. Please check the firmware file again and try", @"Firmware File Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); return; } version = version.Substring(version.IndexOf(':') + 1); fwData.FWBundleVersion = version; var dateCode = revision.Substring(revision.IndexOf('(') + 1, revision.LastIndexOf(')') - (revision.IndexOf('(') + 1)); fwData.FirmwareDateCode = dateCode; var name = outputLines.FirstOrDefault(x => x.Contains("Name")); if (string.IsNullOrEmpty(name)) { MessageBox.Show( @"An error occurred while reading firmware Name information. Please check the firmware file again and try", @"Firmware File Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); return; } name = name.Substring(name.IndexOf(':') + 1).Trim(); fwData.FWModelName = name; var pfamily = outputLines.FirstOrDefault(x => x.Contains("Identifier")); pfamily = pfamily.Substring(pfamily.IndexOf(':') + 1).Trim(); fwData.ProductFamily = pfamily; if (nameModel.Where(x => x.Value.ProductFamily == pfamily).Count() == 0) { MessageBox.Show( $@"Failed to match the firmware bundle to an existing device. Please check the firmware files and selected assets and try again. Model: {name}", @"Firmware File Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); return; } else { var devs = nameModel.Where(x => x.Value.ProductFamily == pfamily).Select(x => x.Key); foreach (var dev in devs) { nameModel[dev].FirmwareFile = firmwareFile; } } _data.FWBundleInfo.Add(fwData); } if (nameModel.Where(x => x.Value.FirmwareFile == string.Empty).Count() > 0) { string devices = nameModel.Where(x => x.Value.FirmwareFile == string.Empty).Select(x => x.Key).Aggregate((current, next) => current + ", " + next); MessageBox.Show( $@"Failed to match the following devices with firmware: {devices}. Please check the firmware files and selected assets and try again.", @"Firmware File Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); return; } _data.AssetMapping = nameModel; }
private bool SetSTSharePointQuickSetData(IEnumerable <STSharePointQuickSetData> group, JediDevice device, AssetInfo assetInfo, string fieldChanged, PluginExecutionData datas) { string activityUrn = "urn:hp:imaging:con:service:sharepoint:SharePointService:PredefinedJobs"; string endpoint = "sharepoint"; _nameSpaceDictionary = new Dictionary <string, XNamespace> { { "dsd", _dsd }, { "dd", _dd }, { "folder", _folderNs }, { "security", _securityNs }, { "dd2", _dd2 }, { "dd3", _dd3 }, { "sharepoint", _sharepointNs } }; var stSharePointQuickSetDatas = group as IList <STSharePointQuickSetData> ?? group.ToList(); DataPair <IEnumerable <STSharePointQuickSetData> > quick = new DataPair <IEnumerable <STSharePointQuickSetData> > { Value = true, Key = stSharePointQuickSetDatas }; Func <WebServiceTicket, WebServiceTicket> change = n => { var sharepointPredefinedJobs = new XElement(_sharepointNs + "PredefinedJobs", new XAttribute(XNamespace.Xmlns + "security", _securityNs.NamespaceName), new XAttribute(XNamespace.Xmlns + "dsd", _dsd.NamespaceName), new XAttribute(XNamespace.Xmlns + "folder", _folderNs.NamespaceName), new XAttribute(XNamespace.Xmlns + "dd2", _dd2.NamespaceName), new XAttribute(XNamespace.Xmlns + "dd3", _dd3.NamespaceName), new XAttribute(XNamespace.Xmlns + "dd", _dd.NamespaceName), new XAttribute(XNamespace.Xmlns + "sharepoint", _sharepointNs.NamespaceName) ); foreach (STSharePointQuickSetData data in stSharePointQuickSetDatas) { string scanSettings = string.Format(Resources.scanSettings, data.ScanSetData.ContentOrientation.Key, data.ScanSetData.OriginalSize.Key, data.ScanSetData.OriginalSides.Key); string attachmentSettings = string.Format(Resources.attachmentSettings, data.FileSetData.FileType.Key, data.FileSetData.Resolution.Key); string displaySettings = string.Format(Resources.displaySettings, data.Name, _priority++.ToString()); string sendSharePointDestination = string.Format(Resources.sendSharePointDestination, data.FolderPath); string sharePointPredefinedJob = string.Format(Resources.sendSharePointPredefinedJob, data.Name, Resources.notificationSettings, scanSettings, data.ScanSetData.ImagePreview.Key, attachmentSettings, displaySettings, sendSharePointDestination); sharepointPredefinedJobs.Add(ParseFragment("folder:PredefinedJob", sharePointPredefinedJob, _nameSpaceDictionary)); } n = new WebServiceTicket(sharepointPredefinedJobs); return(n); }; bool quickSetAdded = UpdateField(change, device, quick, activityUrn, endpoint, assetInfo, fieldChanged, datas); if (quickSetAdded) { var sharePointTicket = device.WebServices.GetDeviceTicket("sharepoint", "urn:hp:imaging:con:service:sharepoint:SharePointService"); var sharePointEnabled = sharePointTicket.FindElement("FolderServiceEnabled"); if (sharePointEnabled.Value == "disabled") { //enable sharepoint sharePointEnabled.Value = "enabled"; device.WebServices.PutDeviceTicket("sharepoint", "urn:hp:imaging:con:service:sharepoint:SharePointService", sharePointTicket); } } return(quickSetAdded); }