public Boolean LicenseIsAvailable(License license)
        {
            StartDBAccess();
            LicenseDAO licenseDAO    = new LicenseDAO(dataAccess.GetConnection());
            License    storedLicense = licenseDAO.GetLicense(license.tenantId, license.id);

            FinishDBAccess();

            // A licença não existe
            if (storedLicense == null)
            {
                return(false);
            }

            // A licença está disponível
            if (String.IsNullOrEmpty(storedLicense.installationKey))
            {
                return(true);
            }

            // Verifica se o produto esta sendo reinstalado, neste caso "installationKey" permanecerá o mesmo,
            // a licença é reaproveitada
            if (license.installationKey.ToUpper() == storedLicense.installationKey.ToUpper())
            {
                return(true);
            }

            // Caso não se enquadre em nenhum dos anteriores a licença está em uso por outra workstation
            return(false);
        }
Пример #2
0
        internal bool AddinIsValid(string addin, out DateTime dueDate)
        {
            string xmlKey;
            string licenseXml;

            dueDate = DateTime.MinValue;
            AddInAttribute addinAttribute = getAddinAttribute(addin);

            if (string.IsNullOrWhiteSpace(addinAttribute.LicenseFile))
            {
                dueDate = DateTime.MaxValue;
                return(true);
            }
            xmlKey = readKeyXML(addin, addinAttribute.LicenseFile);

            if (string.IsNullOrWhiteSpace(xmlKey) || string.IsNullOrWhiteSpace(addinAttribute.Namespace))
            {
                return(false);
            }

            licenseXml = licenseDAO.GetLicense(addinAttribute.Namespace);

            if (licenseXml == null || !CheckSignature(licenseXml, xmlKey))
            {
                return(false);
            }

            string sysNumber     = sapApp.Company.SystemId;
            string installNumber = sapApp.Company.InstallationId;

            LicenseHeader licenseFile = licenseXml.Deserialize <LicenseHeader>();

            if (!string.IsNullOrEmpty(licenseFile.SystemNumber) &&
                !string.IsNullOrEmpty(licenseFile.InstallNumber) &&
                licenseFile.SystemNumber == sysNumber && licenseFile.InstallNumber == installNumber)
            {
                List <LicenseModule> licenseModules = licenseFile.Items.Where(i => i.Name == addin).ToList();;
                if (licenseModules != null && licenseModules.Count() > 0)
                {
                    dueDate = licenseModules[0].ExpirationDate;
                }
            }

            return(GetDate() < dueDate);
        }