Exemple #1
0
 /// <summary>
 /// 是否可以注册
 /// </summary>
 /// <param name="key"></param>
 /// <param name="model"></param>
 /// <returns></returns>
 private (bool canRegister, string errorMessage) CanRegister(string key, RegisterEnvironmentModel model)
 {
     try
     {
         if (model.Key != ApplicationConfig.ServerInfo.Key)
         {
             throw new ConfigCenterException("密钥错误");
         }
         if (_registers.ContainsKey(key))
         {
             throw new ConfigCenterException("同一连接不可以重复注册");
         }
         if (_registers.Any(m => m.Value.Name.Equals(model.Name, StringComparison.Ordinal)))
         {
             throw new ConfigCenterException("该服务名称已被注册");
         }
         if (_registers.Any(m => m.Value.Url.Equals(model.Url, StringComparison.Ordinal)))
         {
             throw new ConfigCenterException("该服务连接已被注册");
         }
         return(true, string.Empty);
     }
     catch (ConfigCenterException exception)
     {
         return(false, exception.Message);
     }
 }
Exemple #2
0
 public void RegisterEnvironment(string key, RegisterEnvironmentModel model)
 {
     (bool canRegister, string errorMessage) = CanRegister(key, model);
     if (!canRegister)
     {
         throw new ConfigCenterException(errorMessage);
     }
     if (_registers.TryAdd(key, model))
     {
         ConfigCenterConsoleHelper.WriteLine($"新的环境[{model.Name}]注册:{model.Url}");
     }
     else
     {
         throw new ConfigCenterException("注册服务失败");
     }
 }