Beispiel #1
0
        private static IMessage PayloadFromProtobuf(this ProtocolExchange protocolExchange)
        {
            switch (protocolExchange.MessageCase)
            {
            case ProtocolExchange.MessageOneofCase.CreateRoomRequest:
                return(new Messages.CreateRoomRequest(protocolExchange.CreateRoomRequest.RoomName));

            case ProtocolExchange.MessageOneofCase.CreateRoomResponse:
                return(new Messages.CreateRoomResponse(protocolExchange.CreateRoomResponse.Room.FromProtobuf()));

            case ProtocolExchange.MessageOneofCase.ListRoomRequest:
                return(new Messages.ListRoomsRequest());

            case ProtocolExchange.MessageOneofCase.ListRoomResponse:
                return(new Messages.ListRoomsResponse(protocolExchange.ListRoomResponse.Rooms
                                                      .Select(room => room.FromProtobuf())
                                                      .ToList()));

            case ProtocolExchange.MessageOneofCase.JoinRoomRequest:
                return(new Messages.JoinRoomRequest(protocolExchange.JoinRoomRequest.RoomId));

            case ProtocolExchange.MessageOneofCase.JoinRoomResponse:
                return(new Messages.JoinRoomResponse(protocolExchange.JoinRoomResponse.Room.FromProtobuf(),
                                                     protocolExchange.JoinRoomResponse.Messages
                                                     .Select(message => message.FromProtobuf())
                                                     .ToList()));

            case ProtocolExchange.MessageOneofCase.LeaveRoomRequest:
                return(new Messages.LeaveRoomRequest(protocolExchange.LeaveRoomRequest.Room.FromProtobuf()));

            case ProtocolExchange.MessageOneofCase.LeaveRoomResponse:
                return(new
                       Messages.LeaveRoomResponse(protocolExchange.LeaveRoomResponse.Room.FromProtobuf()));

            case ProtocolExchange.MessageOneofCase.ChatError:
                return(new ChatErrorResponse(protocolExchange.ChatError.Message));

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Beispiel #2
0
 private static ExchangeMessage FromProtobuf(this ProtocolExchange protocolExchange)
 {
     return(new ExchangeMessage(protocolExchange.ExchangeId, protocolExchange.PayloadFromProtobuf()));
 }