Beispiel #1
0
        public bool AddClient(Client client)
        {
            if (Clients.Keys.Contains(client))
            {
                return(false);
            }
            ConferenceUser conferenceUser = new ConferenceUser(client);

            Clients.Add(client, conferenceUser);
            conferenceUser.SendRequestToEnterConference(Id, Creator, Clients.Values.ToList());
            client.IsSoundMuteSwitched += Client_IsSoundMuteSwitched;
            return(true);
        }
Beispiel #2
0
 public Conference(Client creator, IEnumerable <Client> clients, out int id)
 {
     _soundOnUsers = new List <Client>();
     _soundBuffer  = new Queue <SoundBufferItem>();
     id            = _idController.GetID();
     Id            = id;
     Creator       = new ConferenceUser(creator)
     {
         InConference = true
     };
     Clients = clients.Select(client => new ConferenceUser(client)).ToDictionary(x => x.Client) ?? throw new ArgumentNullException(nameof(clients));
     foreach (ConferenceUser user in Clients.Values)
     {
         user.SendRequestToEnterConference(Id, Creator, Clients.Values.ToList());
     }
     Clients.Add(Creator.Client, Creator);
     foreach (Client client in Clients.Keys)
     {
         client.IsSoundMuteSwitched += Client_IsSoundMuteSwitched;
     }
 }
Beispiel #3
0
 public void SendRequestToEnterConference(int id, ConferenceUser creator, List <ConferenceUser> conferenceUsers) => NetworkManager.SendRequestToEnterConference(id, Client, creator.Client, conferenceUsers.Select(x => x.Client).Where(x => x != Client));