private void Service_ConnectionOpenedOrClosed(ConnectionAction action, SyncService s)
        {
            if (action == ConnectionAction.OPENED)
            {
                Logger.Log("Client [{0}] connected. {1} clients online in room {2}.", s.Nickname, Services.Count, RoomCode);

                if (CurrentQueue.URLs != null)
                {
                    // update new user with queue
                    var res = new
                    {
                        CommandType = CommandType.QUEUEUPDATE.Value,
                        Queue       = new
                        {
                            Name       = CurrentQueue.Name,
                            QueueIndex = CurrentQueue.QueueIndex,
                            URLs       = CurrentQueue.URLs
                        }
                    };

                    s.SendMessage(JsonConvert.SerializeObject(res));
                }


                // notify service of their nickname
                var res1 = new
                {
                    CommandType = CommandType.SETUSERNICKNAME.Value,
                    Nickname    = s.Nickname
                };

                s.SendMessage(JsonConvert.SerializeObject(res1));


                // notify service of like count
                var res2 = new
                {
                    CommandType = CommandType.UPDATELIKES.Value,
                    Likes       = likes
                };

                s.SendMessage(JsonConvert.SerializeObject(res2));
            }
            else
            {
                int index = Services.FindIndex(x => x.ID == s.ID);
                Services.RemoveAt(index);
                Logger.Log("Client [{0}] disconnected. {1} clients online in room {2}.", s.Nickname, Services.Count, RoomCode);
            }


            ActiveUsers = Services.Count;
            ReassessOwnership(s, action);

            SendUserList();
        }
 public void BroadcastExcept(string message, SyncService exception)
 {
     for (int i = 0; i < Services.Count; i++)
     {
         if (Services[i].ID != exception.ID)
         {
             Services[i].SendMessage(message);
         }
     }
 }
 private void Service_MessageRecieved(dynamic message, SyncService s)
 {
     RecievedCommandInterpreter.InterpretCommand(message, s, this);
 }