public InstanceGroupConfig GetGroupConfig(string groupName, bool isFillDefaultValueIfNotExist = false) { InstanceGroupConfig instanceGroupConfig = null; groupName = this.ResolveGroupName(groupName); if (string.IsNullOrEmpty(groupName) && isFillDefaultValueIfNotExist) { groupName = "B1563499-EA40-4101-A9E6-59A8EB26FF1E"; } using (RegistryKey registryKey = this.OpenGroupConfigKey(groupName, false)) { if (registryKey != null || isFillDefaultValueIfNotExist) { instanceGroupConfig = new InstanceGroupConfig(); instanceGroupConfig.NameResolver = this; instanceGroupConfig.Self = this.Self; instanceGroupConfig.ComponentName = this.componentName; instanceGroupConfig.IsZeroboxMode = this.isZeroboxMode; instanceGroupConfig.Name = groupName; instanceGroupConfig.IsExistInConfigProvider = (registryKey != null); instanceGroupConfig.Identity = string.Format("Group/{0}/{1}/{2}", this.componentName, groupName, this.Self); string defaultGroupName = this.GetDefaultGroupName(); instanceGroupConfig.IsAutomaticActionsAllowed = RegUtils.GetBoolProperty(registryKey, "IsAutomaticActionsAllowed", false); instanceGroupConfig.IsRestartRequested = RegUtils.GetBoolProperty(registryKey, "IsRestartRequested", false); instanceGroupConfig.IsConfigurationManagedExternally = RegUtils.GetBoolProperty(registryKey, "IsConfigurationManagedExternally", false); instanceGroupConfig.ConfigInProgressExpiryTime = RegUtils.GetTimeProperty(registryKey, "ConfigInProgressExpiryTime"); instanceGroupConfig.IsDefaultGroup = Utils.IsEqual(groupName, defaultGroupName, StringComparison.OrdinalIgnoreCase); instanceGroupConfig.IsConfigurationReady = (DateTimeOffset.Now > instanceGroupConfig.ConfigInProgressExpiryTime); instanceGroupConfig.Members = this.GetGroupMemberConfigs(groupName); instanceGroupConfig.Settings = this.GetGroupSettings(groupName); } } return(instanceGroupConfig); }
internal static DateTimeOffset GetTimeProperty(RegistryKey key, string propertyName) { return(RegUtils.GetTimeProperty(key, propertyName, DateTimeOffset.MinValue)); }