public Boolean CreateConfigurationXML(RegistrationInfo registrationInfo, InstallationInfo installationInfo, Boolean startPrintInspector)
        {
            // Verifica se as informações de instalação estão disponíveis
            if (registrationInfo == null)
            {
                return(false);
            }
            if (installationInfo == null)
            {
                return(false);
            }

            String interval = startPrintInspector ? "59000" : "599000";  // caso utilize o "Print Inspector" aumenta a frequência
            String xmlHash  = ResourceProtector.GenerateHash(registrationInfo.ServiceUrl + registrationInfo.TenantId + interval + installationInfo.PrintLogDirectories);

            NameValueCollection taskParams = new NameValueCollection();

            taskParams.Add("url", registrationInfo.ServiceUrl);
            taskParams.Add("tenantId", registrationInfo.TenantId.ToString());
            taskParams.Add("interval", interval);
            taskParams.Add("logDirectories", installationInfo.PrintLogDirectories);
            taskParams.Add("copyLogDir", installationInfo.CopyLogDirectory);
            taskParams.Add("installationKey", ResourceProtector.GenerateHash(ResourceProtector.GetHardwareId()));
            taskParams.Add("xmlHash", xmlHash);

            // Configura os parâmetros de execução no XML
            FileStream fileStream = new FileStream(Path.Combine(installationInfo.TargetDirectory, "JobRouting.xml"), FileMode.Create);

            PrintLogContext.SetTaskParams(taskParams, fileStream);
            fileStream.Close();

            return(true);
        }
Exemplo n.º 2
0
        public License ConvertToLicense()
        {
            License license = new License();

            license.id              = this.LicenseId;
            license.tenantId        = this.TenantId;
            license.installationKey = Cipher.GenerateHash(ResourceProtector.GetHardwareId());

            return(license);
        }
        /// <summary>
        /// Obtem os parâmetros de execução a partir do XML
        /// </summary>
        public static NameValueCollection GetTaskParams()
        {
            NameValueCollection taskParams = new NameValueCollection();

            try
            {
                String        baseDir     = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location.ToString());
                String        xmlLocation = PathFormat.Adjust(baseDir) + "JobRouting.xml";
                XmlTextReader xmlReader   = new XmlTextReader(xmlLocation);
                xmlReader.ReadStartElement("jobrouting");
                taskParams.Add("url", xmlReader.ReadElementString("url"));
                taskParams.Add("tenantId", xmlReader.ReadElementString("tenantid"));
                taskParams.Add("interval", xmlReader.ReadElementString("interval"));
                taskParams.Add("logDirectories", xmlReader.ReadElementString("logdirectories"));
                taskParams.Add("copyLogDir", xmlReader.ReadElementString("copylogdir"));
                taskParams.Add("installationKey", xmlReader.ReadElementString("installationkey"));
                taskParams.Add("xmlHash", xmlReader.ReadElementString("xmlhash"));
                xmlReader.ReadEndElement();
                xmlReader.Close();
            }
            catch
            {
                return(null);
            }

            String installationKey = ResourceProtector.GetHardwareId();

            installationKey = Cipher.GenerateHash(installationKey);

            String xmlHash = taskParams["url"] + taskParams["tenantId"] + taskParams["interval"] + taskParams["logDirectories"];

            xmlHash = Cipher.GenerateHash(xmlHash);

            // Verifica se os parâmetros estão corretos (batem com os configurados durante a instalação)
            if (installationKey != taskParams["installationkey"])
            {
                return(null);
            }
            if (xmlHash != taskParams["xmlhash"])
            {
                return(null);
            }

            return(taskParams);
        }