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); }
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); }