NServiceBus.LicenseLocationConventions.TryFindLicenseText C# (CSharp) Method

TryFindLicenseText() public static method

public static TryFindLicenseText ( ) : string
return string
        public static string TryFindLicenseText()
        {
            var appConfigLicenseString = ConfigurationManager.AppSettings["NServiceBus/License"];
            if (!string.IsNullOrEmpty(appConfigLicenseString))
            {
                Logger.Info("Using embedded license supplied via config file AppSettings/NServiceBus/License.");
                return appConfigLicenseString;
            }

            var appConfigLicenseFile = ConfigurationManager.AppSettings["NServiceBus/LicensePath"];
            if (!string.IsNullOrEmpty(appConfigLicenseFile))
            {
                if (File.Exists(appConfigLicenseFile))
                {
                    Logger.InfoFormat("Using license supplied via config file AppSettings/NServiceBus/LicensePath ({0}).", appConfigLicenseFile);
                    return NonLockingFileReader.ReadAllTextWithoutLocking(appConfigLicenseFile);
                }
                //TODO: should we throw if file does not exist?
                throw new Exception($"You have a configured licensing via AppConfigLicenseFile to use the file at '{appConfigLicenseFile}'. However this file does not exist. Either place a valid license at this location or remove the app setting.");
            }

            var localLicenseFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"NServiceBus\License.xml");
            if (File.Exists(localLicenseFile))
            {
                Logger.InfoFormat("Using license in current folder ({0}).", localLicenseFile);
                return NonLockingFileReader.ReadAllTextWithoutLocking(localLicenseFile);
            }

            var oldLocalLicenseFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"License\License.xml");
            if (File.Exists(oldLocalLicenseFile))
            {
                Logger.InfoFormat("Using license in current folder ({0}).", oldLocalLicenseFile);
                return NonLockingFileReader.ReadAllTextWithoutLocking(oldLocalLicenseFile);
            }

            var registryLicense = LoadLicenseFromRegistry();
            if (!string.IsNullOrEmpty(registryLicense))
            {
                return registryLicense;
            }

            registryLicense = LoadLicenseFromPreviousRegistryLocation("4.3");
            if (!string.IsNullOrEmpty(registryLicense))
            {
                return registryLicense;
            }

            registryLicense = LoadLicenseFromPreviousRegistryLocation("4.2");
            if (!string.IsNullOrEmpty(registryLicense))
            {
                return registryLicense;
            }

            registryLicense = LoadLicenseFromPreviousRegistryLocation("4.1");
            if (!string.IsNullOrEmpty(registryLicense))
            {
                return registryLicense;
            }

            registryLicense = LoadLicenseFromPreviousRegistryLocation("4.0");
            if (!string.IsNullOrEmpty(registryLicense))
            {
                return registryLicense;
            }

            return null;
        }

Usage Example

Example #1
0
        static string GetExistingLicense()
        {
            string existingLicense;

            //look in HKCU
            if (UserSidChecker.IsNotSystemSid() && new RegistryLicenseStore().TryReadLicense(out existingLicense))
            {
                return(existingLicense);
            }

            //look in HKLM
            if (new RegistryLicenseStore(Registry.LocalMachine).TryReadLicense(out existingLicense))
            {
                return(existingLicense);
            }

            return(LicenseLocationConventions.TryFindLicenseText());
        }