/// <summary> /// Adds new Intro,Reason and available at /// </summary> /// <param name="part">The part of the answer</param> /// <param name="id">The id of the answer</param> /// <param name="value">The value of the answer</param> public void Update(AnswerPart part, string id, string value) { switch (part) { case AnswerPart.Intro: var intro = intros.FindAll(it => it.Id == id); if (intro.Count == 0) { throw new AnswerPartNotFoundException(); } intros.Remove(intro.First()); intros.Add(new Intro(id, value)); break; case AnswerPart.Reason: var reason = reasons.FindAll(it => it.Id == id); if (reason.Count == 0) { throw new AnswerPartNotFoundException(); } reasons.Remove(reason.First()); reasons.Add(new Reason(id, value)); break; case AnswerPart.AvailableAt: var availableAt = availableAts.FindAll(it => it.Id == id); if (availableAt.Count == 0) { throw new AnswerPartNotFoundException(); } availableAts.Remove(availableAt.First()); availableAts.Add(new AvailableAt(id, value)); break; } }
/// <summary> /// Gets a specified answer(if there is a new part added it prints it,the others remain default) /// </summary> /// <param name="part">The part of the answer</param> /// <param name="word">The word</param> /// <returns></returns> public Answer GetSpecificAnswer(AnswerPart part, string word) { var defaultAnswer = GetAnswer(); switch (part) { case AnswerPart.Intro: var intro = intros.FindAll(it => it.Value.Contains(word)); if (intro.Count == 0) { return(defaultAnswer); } else { return(new Answer(intro.First().Value, defaultAnswer.Reason, defaultAnswer.AvailableAt)); } case AnswerPart.Reason: var reason = reasons.FindAll(it => it.Value.Contains(word)); if (reason.Count == 0) { return(defaultAnswer); } else { return(new Answer(defaultAnswer.Intro, reason.First().Value, defaultAnswer.AvailableAt)); } case AnswerPart.AvailableAt: var availableAt = availableAts.FindAll(it => it.Value.Contains(word)); if (availableAt.Count == 0) { return(defaultAnswer); } else { return(new Answer(defaultAnswer.Intro, defaultAnswer.Reason, availableAt.First().Value)); } default: return(defaultAnswer); } }