From 3db29db2a48f7141bf39664883a746e97da4e8f7 Mon Sep 17 00:00:00 2001 From: shept Date: Thu, 19 Jun 2025 10:48:12 +0500 Subject: [PATCH] fix question update --- .../Services/QuestionService.cs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/SurveyBackend/SurveyBackend.Services/Services/QuestionService.cs b/SurveyBackend/SurveyBackend.Services/Services/QuestionService.cs index 3647f0c..9867742 100644 --- a/SurveyBackend/SurveyBackend.Services/Services/QuestionService.cs +++ b/SurveyBackend/SurveyBackend.Services/Services/QuestionService.cs @@ -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 {