Ejemplo n.º 1
0
        public void Disconnect(int id)
        {
            ServerUser user = _serverUsers.Find(c => c.Id == id);

            if (user != null)
            {
                _serverUsers.Remove(user);
                SendMessage(user.Name + " покинул чат.", 0);
            }
        }
Ejemplo n.º 2
0
        public int Connect(string name)
        {
            ServerUser user = new ServerUser
            {
                Id               = _nextUserId,
                Name             = name,
                OperationContext = OperationContext.Current
            };

            _nextUserId++;

            SendMessage(user.Name + " подключился к чату.", 0);
            _serverUsers.Add(user);

            return(user.Id);
        }
Ejemplo n.º 3
0
        public void SendMessage(string message, int id)
        {
            foreach (ServerUser serverUser in _serverUsers)
            {
                string answer = DateTime.Now.ToShortTimeString();

                ServerUser user = _serverUsers.Find(c => c.Id == id);
                if (user != null)
                {
                    answer = user.Name + $" ({answer}): " + message;
                    serverUser.OperationContext.GetCallbackChannel <IServiceChatCallBack>().MessageCallBack(answer);
                }
                else
                {
                    answer += ": " + message;
                    serverUser.OperationContext.GetCallbackChannel <IServiceChatCallBack>().MessageCallBack(answer);
                }
            }
        }