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