public bool Add(Connection Connection)
        {
            if (Clients == null)
            {
                return(false);
            }
            if (Contains(Connection))
            {
                return(false);
            }
            if (Connection.Key.Length == 0)
            {
                return(false);
            }

            List <string> Result = Keys.Get(Connection.Key);

            if (Result == null)
            {
                Result = new List <string>();
            }

            Result.Add(Connection.GUID);

            if (Result.Count == 1)
            {
                if (!Keys.Addb(Connection.Key, Result))
                {
                    return(false);
                }
            }

            return(Clients.Addb(Connection.GUID, Connection));
        }
        public List <Connection> Get(string Key, bool Devices)
        {
            if (Keys == null)
            {
                return(null);
            }
            if ((Key == null) || Key.Length == 0)
            {
                return(null);
            }

            List <string>     Result  = Keys.Get(Key);
            List <Connection> Matches = new List <Connection>();

            if (Result == null)
            {
                Result = new List <string>();
            }

            foreach (string Guid in Result)
            {
                Connection Match = Clients.Get(Guid);

                if (Match == null)
                {
                    continue;
                }
                if (Match.Device != Devices)
                {
                    continue;
                }

                Matches.Add(Match);
            }

            return(Matches);
        }