Пример #1
0
        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);
        }
Пример #2
0
        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);
        }