public async Task UpdateQuestionTopic(PangulDbContext db, UserContext user, UpdateQuestionTopic model) { model.UserContext = user; model.Derived.Topic = await _topicService.RequireTopic(db, user, model.TopicName); await _updateQuestionTopic.Execute(db, model); }
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; }