/// <summary> /// /// </summary> /// <param name="questTitles"></param> private void SetQuests(IEnumerable <string> questTitles) { // текущие вопросы var currentQuests = _questionDao .GetByTitles(questTitles) .ToDictionary(x => x.Title); // почистить существующие связи вопрос-ответ var questIds = currentQuests.Select(x => x.Value.Questid).ToArray(); if (!questIds.IsNullOrEmpty()) { _testDao.ClearQuestAnswers(questIds); } var setQuests = new List <Question>(); foreach (var questTitle in questTitles) { Question setQuest; if (currentQuests.TryGetValue(questTitle, out setQuest)) { continue; } setQuest = new Question { Title = questTitle, AnswerType = "S", LevelOfDifficulty = "S" }; setQuests.Add(setQuest); } // сохранение вопросов без привязок к ответам _questionDao.Save(setQuests); }