/// <summary> /// Updates answer choice with new data. /// </summary> /// <param name="destination"></param> /// <param name="source"></param> public static void UpdateWith(this SelectionAnswerChoice destination, SelectionAnswerChoice source) { destination.Description = source.Description; destination.IsOpenEnded = source.IsOpenEnded; destination.Sort = source.Sort; var localizedString = source.LocalizedStrings.FirstOrDefault(); if (localizedString != null) { destination.AddOrUpdateLocalizedString(localizedString); } }
/// <summary> /// Updates fields of answer choice in destination with values from source. /// </summary> /// <param name="answerChoice"></param> /// <param name="localizedString"></param> public static void AddOrUpdateLocalizedString(this SelectionAnswerChoice answerChoice, SelectionAnswerChoiceString localizedString) { var localizedStringEntity = answerChoice.LocalizedStrings.FirstOrDefault( s => s.Language.Equals(localizedString.Language)); if (localizedStringEntity == null) { answerChoice.LocalizedStrings.Add(localizedString); } else { localizedStringEntity.UpdateWith(localizedString); } }
/// <summary> /// Includes new or updates existed answer in answer set. /// </summary> public static void AddOrUpdateAnswerChoice(this SelectionAnswerSet answerSet, SelectionAnswerChoice answerChoice) { if (answerChoice == null) { throw new ArgumentNullException("answerChoice"); } var answerChoiceEntity = answerSet.SelectionAnswerChoices.FirstOrDefault( a => !answerChoice.Id.IsEmpty() && a.Id == answerChoice.Id); if (answerChoiceEntity == null) { answerSet.SelectionAnswerChoices.Add(answerChoice); } else { answerChoiceEntity.UpdateWith(answerChoice); } }