fix question update

This commit is contained in:
Вячеслав 2025-06-19 10:48:12 +05:00
parent d93c7ab3c9
commit 3db29db2a4

View file

@ -10,14 +10,14 @@ public class QuestionService : IQuestionService
{ {
private readonly IQuestionRepository _questionRepository; private readonly IQuestionRepository _questionRepository;
private readonly ISurveyRepository _surveyRepository; private readonly ISurveyRepository _surveyRepository;
private readonly IUserContext _userContext; private readonly IAnswerVariantsRepository _answerVariantsRepository;
public QuestionService(IQuestionRepository questionRepository, ISurveyRepository surveyRepository, public QuestionService(IQuestionRepository questionRepository, ISurveyRepository surveyRepository,
IUserContext userContext) IAnswerVariantsRepository answerVariantsRepository)
{ {
_questionRepository = questionRepository; _questionRepository = questionRepository;
_surveyRepository = surveyRepository; _surveyRepository = surveyRepository;
_userContext = userContext; _answerVariantsRepository = answerVariantsRepository;
} }
public async Task AddQuestionAsync(QuestionBase question) public async Task AddQuestionAsync(QuestionBase question)
@ -44,11 +44,17 @@ public class QuestionService : IQuestionService
// Если изменился тип вопроса (Discriminator), используем новый тип // Если изменился тип вопроса (Discriminator), используем новый тип
if (questionBase.Discriminator != question.Discriminator) if (questionBase.Discriminator != question.Discriminator)
{ {
var answerVariants = await _answerVariantsRepository.GetAnswerVariantsByQuestionIdAsync(questionBase.Id);
// Удаляем старый вопрос // Удаляем старый вопрос
await _questionRepository.DeleteAsync(questionBase.Id); await _questionRepository.DeleteAsync(questionBase.Id);
// Добавляем новый с тем же ID // Добавляем новый с тем же ID
await _questionRepository.AddAsync(question); await _questionRepository.AddAsync(question);
foreach (var answerVariant in answerVariants)
{
answerVariant.QuestionId = question.Id;
await _answerVariantsRepository.AddAsync(answerVariant);
}
} }
else else
{ {