fix question update
This commit is contained in:
parent
d93c7ab3c9
commit
3db29db2a4
1 changed files with 10 additions and 4 deletions
|
|
@ -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
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue