Exemplo n.º 1
0
        public Guid? ActivateLicenseKey(string licenseKey, Guid? originalToken, ServiceLicense licenseBase)
        {
            SecureString hashedLicenseKey = SecureStringHelper.StringToSecureString(_hashingProvider.ComputeHash(licenseKey, Resources.KeyHashAlgo));
            hashedLicenseKey.MakeReadOnly();

            int licenseSetId = licenseBase.LicenseSets.First().LicenseSetId;// TODO: Only works for SSLK
            LicenseSet ls = _clientRepository.GetLicenseSetById(licenseSetId);
            LicenseActivation la = _clientRepository.GetLicenseActivationByKeyAndSetId(SecureStringHelper.SecureStringToString(hashedLicenseKey), licenseSetId);

            if (AuthorizeLicenseForActivation(licenseKey, licenseBase))
            {
                ServiceLicenseKey lk = _serviceProductsRepository.GetServiceLicenseKeyByKeyLicenseSet(SecureStringHelper.SecureStringToString(hashedLicenseKey), licenseSetId);

                la = new LicenseActivation();
                la.LicenseKeyId = lk.LicenseKeyId;
                la.ActivatedOn = DateTime.Now;
                la.ActivationToken = Guid.NewGuid();
                la.OriginalToken = originalToken;
                la.HardwareHash = licenseBase.HardwareHash;
                la.ActivationStatus = ActivationStatus.Normal;
                la.ActivationStatusUpdatedOn = DateTime.Now;

                _clientRepository.InsertLicenseActivation(la);

                lk.ActivationCount++;

                _serviceProductsRepository.SaveServiceLicenseKey(lk);

                return la.ActivationToken;
            }

            return null;
        }
Exemplo n.º 2
0
		/// <summary>
		/// Attempts to activate the license key
		/// </summary>
		/// <param name="licenseKey"></param>
		/// <param name="originalToken"></param>
		/// <param name="licenseBase"></param>
		/// <param name="hardwareFingerprint"></param>
		/// <returns></returns>
		public Guid? ActivateLicenseKey(string licenseKey, Guid? originalToken, ServiceLicense licenseBase, string hardwareFingerprint)
		{
			KeyData keyData = _licenseKeyService.GetLicenseKeyData(licenseKey, licenseBase, true);
			SecureString hashedLicenseKey = SecureStringHelper.StringToSecureString(_hashingProvider.ComputeHash(licenseKey, Resources.KeyHashAlgo));
			hashedLicenseKey.MakeReadOnly();

			int licenseSetId = keyData.LicenseSetId;// TODO: Only works for SSLK
			LicenseSet ls = _clientRepository.GetLicenseSetById(licenseSetId);
			LicenseActivation la = _clientRepository.GetLicenseActivationByKeyAndSetId(SecureStringHelper.SecureStringToString(hashedLicenseKey), licenseSetId);

			if (AuthorizeLicenseForActivation(licenseKey, licenseBase, hardwareFingerprint))	// TODO: Possible double call with two log entries here, as this is called in the parent as well. -SJ
			{
				ServiceLicenseKey lk = _serviceProductsRepository.GetServiceLicenseKeyByKeyLicenseSet(SecureStringHelper.SecureStringToString(hashedLicenseKey), licenseSetId);

				la = new LicenseActivation();
				la.LicenseKeyId = lk.LicenseKeyId;
				la.ActivatedOn = DateTime.Now;
				la.ActivationToken = Guid.NewGuid();
				la.OriginalToken = originalToken;
				la.ActivationStatus = ActivationStatus.Normal;
				la.ActivationStatusUpdatedOn = DateTime.Now;

				if (!String.IsNullOrEmpty(hardwareFingerprint))
					la.HardwareHash = hardwareFingerprint;

				_clientRepository.InsertLicenseActivation(la);

				lk.ActivationCount++;

				_serviceProductsRepository.SaveServiceLicenseKey(lk);

				return la.ActivationToken;
			}

			return null;
		}