Ejemplo n.º 1
0
        virtual public bool Connect(User user)
        {
            if (user == null || _connectedUsers.Where(u => u.Id == user.Id).FirstOrDefault() != null)
            {
                return(false);
            }

            IChatServiceCallback currentCallback = OperationContextWrapper.GetCallbackChannel <IChatServiceCallback>();

            if (currentCallback == null)
            {
                return(false);
            }

            lock (syncObj)
            {
                _userCallbackPairs.Add(user.Id, currentCallback);
                _connectedUsers.Add(user);
                foreach (IChatServiceCallback callback in _userCallbackPairs.Values)
                {
                    callback.RefreshUsers(_connectedUsers);
                    callback.UserConnect(user);
                }
            }
            return(true);
        }