Ejemplo n.º 1
0
        public async Task Handle(CreateRoom command)
        {
            Room room;
            var  playerId = new PlayerId(command.HostPlayerId);

            do
            {
                room = Room.CreateRoom(playerId, command.HostPlayerName, CharacterKey.Parse(command.SelectedCharacter));
            }while (!(await _persister.TryStore(room)));

            await _eventHub.DispatchAll(room);
        }
Ejemplo n.º 2
0
        public async Task Handle(JoinRoom command)
        {
            if (RoomCode.TryParse(command.RoomCode, out RoomCode code, out string error))
            {
                var room = await _fetcher.Fetch(code);

                if (room == null)
                {
                    await _eventHub.Dispatch(new JoinRoomFailed()
                    {
                        PlayerId = command.PlayerId,
                        RoomCode = command.RoomCode,
                        UserName = command.UserName,
                        Reason   = "Room not found"
                    });
                }
                else
                {
                    room.AddGuest(new PlayerId(command.PlayerId), command.UserName, CharacterKey.Parse(command.SelectedCharacter));
                    await _persister.TryStore(room);

                    await _eventHub.DispatchAll(room);
                }
            }
Ejemplo n.º 3
0
 public async Task Handle(PickCharacter command)
 {
     var character = CharacterKey.Parse(command.Character);
 }