Esempio n. 1
0
        /// <summary>
        /// Удовлетворить заявку.
        /// </summary>
        /// <param name="join">Заявка.</param>
        public void Accept(ChatJoin join)
        {
            if (join == null)
            {
                throw new ArgumentNullException("join");
            }

            Invoke(f => f.Accept(SessionId, join.Id));
        }
Esempio n. 2
0
        private void OnJoinAccepted(ChatJoin join)
        {
            var item = _chatRooms.FirstOrDefault(r => r.Room.Id == join.RoomId);

            if (item == null)
            {
                return;
            }

            item.Messages.Add(join);
        }
Esempio n. 3
0
        private void OnJoinRejected(ChatJoin request, ChatJoin response)
        {
            var item = _chatRooms.FirstOrDefault(r => r.Room.Id == response.RoomId);

            if (item == null)
            {
                return;
            }

            item.Messages.Add(response);
        }
Esempio n. 4
0
        /// <summary>
        /// Отклонить заявку.
        /// </summary>
        /// <param name="request">Заявка на присоединение.</param>
        /// <param name="response">Ответ на заявку.</param>
        public void Reject(ChatJoin request, ChatJoin response)
        {
            if (request == null)
            {
                throw new ArgumentNullException("request");
            }

            if (response == null)
            {
                throw new ArgumentNullException("response");
            }

            response.Id = Invoke(f => f.Reject(SessionId, request.Id, response));
        }
Esempio n. 5
0
        /// <summary>
        /// Отправить заявку на присоединение.
        /// </summary>
        /// <param name="join">Заявка.</param>
        public void Join(ChatJoin join)
        {
            if (join == null)
            {
                throw new ArgumentNullException("join");
            }

            join.Id = Invoke(f => f.Join(SessionId, join));

            if (join.Id != 0)
            {
                _myJoins.Add(join.Id, join);
            }

            //для открытых комнат событие JoinAccepted не вызывается
            //поэтому сразу добавляем ее в доступные комнаты
            if (_rooms[join.RoomId].IsEveryOne)
            {
                _accessedRooms.Add(join.RoomId);
            }
        }
Esempio n. 6
0
        private void ClientChanged(DataModel data)
        {
            if (data is ChatJoin)
            {
                ChatJoin join = data as ChatJoin;

                if (join.Clients != null && join.Clients.Any())
                {
                    Users.AddRange(join.Clients);
                }
                else
                {
                    Users.Add(data.Sender);
                }
            }
            else if (data is ChatLeave)
            {
                if (Users.Any(c => c.SessionId == data.Sender.SessionId))
                {
                    Users.Remove(Users.Single(c => c.SessionId == data.Sender.SessionId));
                }
            }
        }
Esempio n. 7
0
		private void OnJoinAccepted(ChatJoin join)
		{
			var item = _chatRooms.FirstOrDefault(r => r.Room.Id == join.RoomId);

			if (item == null)
				return;

			item.Messages.Add(join);
		}
Esempio n. 8
0
		private void OnJoinRejected(ChatJoin request, ChatJoin response)
		{
			var item = _chatRooms.FirstOrDefault(r => r.Room.Id == response.RoomId);

			if (item == null)
				return;

			item.Messages.Add(response);
		}
Esempio n. 9
0
 void IChatServiceCallback.JoinRejected(long originalJoinId, ChatJoin join)
 {
     _eventDispatcher.Add(() => JoinRejected.SafeInvoke(_myJoins[originalJoinId], join));
 }