public MainViewModel(RCViewModel rcViewModel, IConfigReaderService configReaderService, ILogService logService, IRCService rcService, ICCService ccService, IConnectivityService connectivityService) { x = rcViewModel; _configReaderService = configReaderService; _logService = logService; _rcService = rcService; _ccService = ccService; _connectivityService = connectivityService; _connectivityService.MessageReceived += OnMessageReceived; BindingOperations.EnableCollectionSynchronization(Logs, _lock); try { SubnetworkConfig = configReaderService.ReadSubnetworkConfig(); } catch (Exception e) { _logService.LogError("WRONG CONFIG: " + e.Message); } if (SubnetworkConfig.IsDomain) { _connectivityService.ConnectToNCCorDomain("127.0.0.1", SubnetworkConfig.NCCPort, SubnetworkConfig.Name); _connectivityService.StartListening("127.0.0.1", SubnetworkConfig.ServerPort); } else { //_cableCloudConnectionService.StartClient("127.0.0.1", SubnetworkConfig.CableCloudPort, SubnetworkConfig.Name); _connectivityService.ConnectToNCCorDomain("127.0.0.1", SubnetworkConfig.ClientPort, SubnetworkConfig.Name); _connectivityService.StartListening("127.0.0.1", SubnetworkConfig.ServerPort); } Task.Run(async() => { while (true) { await CheckList(); Thread.Sleep(50); } }); }
public RCService(IConfigReaderService configReaderService, ILogService logService) { _subnetworkConfigDto = configReaderService.ReadSubnetworkConfig(); _logService = logService; }
public SubnetworkConfigDto ReadSubnetworkConfig() { var config = new SubnetworkConfigDto(); var lines = File.ReadAllLines(_filePath); config.Edges = new List <Edge>(); config.Nodes = new List <Node>(); foreach (var line in lines) { var parts = line.Split(' '); if (line.StartsWith("NAME")) { config.Name = parts[1]; } else if (line.StartsWith("ISDOMAIN")) { config.IsDomain = parts[1].Equals("1"); } else if (line.StartsWith("NCCPORT")) { config.NCCPort = int.Parse(parts[1]); } else if (line.StartsWith("SERVERPORT")) { config.ServerPort = int.Parse(parts[1]); } else if (line.StartsWith("CLIENTPORT")) { config.ClientPort = int.Parse(parts[1]); } else if (line.StartsWith("CABLECLOUDPORT")) { config.CableCloudPort = int.Parse(parts[1]); } else if (line.StartsWith("CLIENT")) { config.Clients.Add(new Client { Name = parts[1], Port = int.Parse(parts[2]) }); } else if (line.StartsWith("EDGE")) { config.Edges.Add(new Edge { Id = int.Parse(parts[1]), Node1 = new Node { Id = config.Nodes.FirstOrDefault(n => n.Name == parts[2]).Id, Name = parts[2] }, Node2 = new Node { Id = config.Nodes.FirstOrDefault(n => n.Name == parts[3]).Id, Name = parts[3] }, Length = int.Parse(parts[4]), State = parts[5] == "1" }); } else if (line.StartsWith("NODE")) { config.Nodes.Add(new Node { Id = uint.Parse(parts[1]), Name = parts[2] }); } } return(config); }