Example #1
0
        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);
        }
Example #2
0
        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));
        }
Example #3
0
        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();
        }
Example #4
0
        /// <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);
        }
Example #5
0
        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);
        }
Example #6
0
        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"));
        }
Example #7
0
        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));
        }
Example #8
0
 /// <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.");
     }
 }
Example #9
0
        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));
        }
Example #10
0
        /// <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);
        }
Example #11
0
        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);
            }
        }
Example #12
0
        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);
        }
Example #14
0
        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);
        }
Example #15
0
        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));
        }
Example #16
0
        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);
        }
Example #17
0
        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);
        }
Example #20
0
        /// <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;
        }
Example #22
0
        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);
        }