public override async Task <JoinChatResponse> CreateRoom(CreateChatRoomRequest request, ServerCallContext context) { JoinChatResponse resp = new JoinChatResponse(); var keys = _chatRooms.Keys; if (keys.Any(i => i.Name == request.RoomName)) { resp.RoomId = -1; } else { var mId = keys.Any() ? keys.Max(i => i.Id) : 0; var room = new ChatRoom(mId + 1, request.RoomName); if (!_chatRooms.TryAdd(room, new List <ChatUser>())) { resp.RoomId = -1; } else { resp.RoomId = room.Id; } } return(resp); }
public override async Task <JoinChatResponse> JoinChat(JoinChatRequest request, ServerCallContext context) { JoinChatResponse resp = new JoinChatResponse(); var keys = _chatRooms.Keys; var id = keys.FirstOrDefault(i => i.Name == request.RoomName)?.Id; if (!id.HasValue) { resp.RoomId = -1; } else { resp.RoomId = id.Value; } return(resp); }