public async Task Execute(PangulDbContext db, UpdateQuestionTopic command)
        {
            command.Validate();

            // Get existing question
            var question = await _getQuestion.Execute(db, new GetQuestion()
            {
                UserContext     = command.UserContext,
                LightWeightOnly = false,
                QuestionId      = command.QuestionId,
                RowVersion      = command.RowVersion,
            });

            if (question == null)
            {
                throw new PangulCommandFailedException(CommandFailureType.MissingData, $"No such question ({command.QuestionId}, {command.RowVersion})");
            }

            // Verify user has permission
            await _internalUserPermissionService.RequireWriteAccessFor(question, command.UserContext);

            question.TopicId = command.Derived.Topic.TopicId;
        }