public async Task <GetCurrentChoiceResult> Handle(GetCurrentChoiceQuery query, CancellationToken ct)
        {
            var userId      = query.UserId;
            var adventureId = query.AdventureId;

            var session = await _userAdventureSessionRepository.GetAsync(userId, adventureId);

            return(new GetCurrentChoiceResult(session.CurrentChoice));
        }
        public async Task <Unit> Handle(MakeChoiceCommand command, CancellationToken ct)
        {
            var session = await _userAdventureSessionRepository.GetAsync(command.UserId, command.AdventureId);

            if (command.ChoiceType == ChoiceType.Left)
            {
                session.ChooseLeft();
            }
            else
            {
                session.ChooseRight();
            }

            await _userAdventureSessionRepository.SaveAsync(session);

            return(Unit.Value);
        }