Пример #1
0
 public void Update(ChannelInstance instance)
 {
     runner.Run(() => {
         var setup = ChannelUtils.SetupString(instance);
         setups.TryGetValue(instance.Id, out string current);
         if (current == null || current != setup)
         {
             OnDelete(instance.Id);
             string ip = ChannelUtils.IPAccess(instance.Access);
             if (ip != null)
             {
                 string executable = ChannelUtils.ExecutableName(instance.Type);
                 var arguments     = string.Format("{0} {1} {2} {3}", ip, instance.Port, executable, instance.Config);
                 states?.Invoke(instance.Id, string.Empty);
                 setups[instance.Id]      = setup;
                 controllers[instance.Id] = new Controller("SharpChannel.Manager.Instance.exe", arguments);
                 logger.Info("{0} Endpoint {1}:{2}", instance.Id, ip, instance.Port);
                 logger.Info("{0} Executable {1}", instance.Id, executable);
                 logger.Info("{0} Config {1}", instance.Id, instance.Config);
             }
         }
     });
 }