/// <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)); }
private void OnJoinAccepted(ChatJoin join) { var item = _chatRooms.FirstOrDefault(r => r.Room.Id == join.RoomId); if (item == null) { return; } item.Messages.Add(join); }
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); }
/// <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)); }
/// <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); } }
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)); } } }
private void OnJoinAccepted(ChatJoin join) { var item = _chatRooms.FirstOrDefault(r => r.Room.Id == join.RoomId); if (item == null) return; item.Messages.Add(join); }
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); }
void IChatServiceCallback.JoinRejected(long originalJoinId, ChatJoin join) { _eventDispatcher.Add(() => JoinRejected.SafeInvoke(_myJoins[originalJoinId], join)); }