private static void AddStrategies(ObservableCollection <ServerStrategy> strategies, List <Core.Server.ServerStrategy> serverStrategies) { var newServerStrategies = serverStrategies.Where(ism => !strategies.Any(s => s.Name == ism.Strategy.Name)).ToList(); Func <Core.Server.ServerStrategy, ServerStrategy> f = (ism) => { var serverStrategy = new ServerStrategy { Name = ism.Strategy.Name, Started = ism.Started, StartedBy = ism.StartedBy, Parameters = ism.Strategy.Parameters, ConnectionCount = ism.Connections.Count }; var connections = ism.Connections.Select(c => new Connection { Name = c.Connection, Connected = c.Connected }).ToList(); connections.ForEach(serverStrategy.Connections.Add); return(serverStrategy); }; var newStrategies = newServerStrategies.Select(ism => f(ism)); foreach (var strategy in newStrategies) { strategies.Add(strategy); } }
static ServerStrategy f(ServerStrategy s, Socket.Messages.ChannelInfo c) { s.Connections.AddRange(c.Connections.Select(conn => new ServerStrategyConnection { Connection = conn.Name })); return(s); }
static ServerStrategy f(Core.Server.ServerStrategy ism) { var serverStrategy = new ServerStrategy { Name = ism.Strategy.Name, Started = ism.Started, StartedBy = ism.StartedBy, Parameters = ism.Strategy.Parameters, ConnectionCount = ism.Connections.Count }; var connections = ism.Connections.Select(c => new Connection { Name = c.Connection, Connected = c.Connected }).ToList(); connections.ForEach(serverStrategy.Connections.Add); return(serverStrategy); };