public void SetGroupMemberConfig(string groupName, InstanceGroupMemberConfig cfg) { lock (this.locker) { using (RegistryKey registryKey = this.OpenGroupMemberConfigKey(groupName, cfg.Name, true)) { RegUtils.SetProperty <bool>(registryKey, "IsWitness", cfg.IsWitness); if (!string.IsNullOrEmpty(cfg.NetworkAddress)) { RegUtils.SetProperty <string>(registryKey, "NetworkAddress", cfg.NetworkAddress); } } } }
public static InstanceGroupMemberConfig GetMemberConfig(this InstanceGroupConfig cfg, string memberName) { InstanceGroupMemberConfig result = null; if (memberName == null) { memberName = cfg.Self; } if (cfg.Members != null) { result = cfg.Members.FirstOrDefault((InstanceGroupMemberConfig mc) => Utils.IsEqual(mc.Name, memberName, StringComparison.OrdinalIgnoreCase)); } return(result); }
public InstanceGroupMemberConfig[] GetGroupMemberConfigs(string groupName) { List <InstanceGroupMemberConfig> list = new List <InstanceGroupMemberConfig>(); string[] groupMemberNames = this.GetGroupMemberNames(groupName); foreach (string text in groupMemberNames) { InstanceGroupMemberConfig instanceGroupMemberConfig = new InstanceGroupMemberConfig { Name = text }; using (RegistryKey registryKey = this.OpenGroupMemberConfigKey(groupName, text, false)) { instanceGroupMemberConfig.NetworkAddress = RegUtils.GetProperty <string>(registryKey, "NetworkAddress", string.Empty); instanceGroupMemberConfig.IsWitness = RegUtils.GetBoolProperty(registryKey, "IsWitness", false); instanceGroupMemberConfig.IsManagedExternally = RegUtils.GetBoolProperty(registryKey, "IsManagedExternally", false); list.Add(instanceGroupMemberConfig); } } return(list.ToArray()); }
public static string GetMemberNetworkAddress(this InstanceGroupConfig cfg, string target) { InstanceGroupMemberConfig memberConfig = cfg.GetMemberConfig(target); return(EndpointBuilder.GetNetworkAddress(cfg.Self, target, (memberConfig != null) ? memberConfig.NetworkAddress : null, cfg.NameResolver, false)); }