/// <summary> /// Add new sentence but kick off previous one, use to handle backoff. /// </summary> /// <param name="sentence">Sentence.</param> public void AddwithOverwrite(UnitLatticeSentence sentence) { foreach (UnitLatticeSentence sent in Sentences) { if (sent.Id == sentence.Id) { Sentences.Remove(sent); break; } } Sentences.Add(sentence); }
/// <summary> /// Performance loading. /// </summary> /// <param name="reader">Stream reader.</param> /// <param name="contentController">Content controller.</param> protected override void PerformanceLoad(StreamReader reader, object contentController) { if (reader == null) { throw new ArgumentNullException("reader"); } XmlTextReader xmlTextReader = new XmlTextReader(reader); while (xmlTextReader.Read()) { if (xmlTextReader.NodeType == XmlNodeType.Element && xmlTextReader.Name == "sentences") { Language = Localor.StringToLanguage(xmlTextReader.GetAttribute("lang")); } else if (xmlTextReader.NodeType == XmlNodeType.Element && xmlTextReader.Name == "sentence") { UnitLatticeSentence sentence = new UnitLatticeSentence(); sentence.Load(xmlTextReader, contentController); this.Sentences.Add(sentence); } } }