public async Task <IEnumerable <ConnectionInfoBase> > EnumerateAllConnectionInfos() { var connections1 = await RDPConnectionInfos.ToListAsync(); var connections2 = await SSHConnectionInfos.ToListAsync(); return(connections1 .Cast <ConnectionInfoBase>() .Union(connections2)); }
private void InitConnectionInvokeTimer() { ConnectionInvokeTimer.Interval = TimeSpan.FromMilliseconds(500); ConnectionInvokeTimer.Tick += async(s, e) => { var list = new List <(ConnectionType Type, int Id)>(); while (ConnectionRequest.Singleton.Queue.Count > 0) { list.Add(ConnectionRequest.Singleton.Queue.Dequeue()); } foreach (var(type, id) in list) { try { switch (type) { case ConnectionType.SSH: await SSHConnectionInfos.ConnectById(id); break; case ConnectionType.RDP: await RDPConnectionInfos.ConnectById(id); break; default: break; } } catch (KeyNotFoundException ex) { MyLogger.Log($"ID {id} is not found in {type} connections.", ex); } } }; ConnectionInvokeTimer.Start(); }