private static ICmPerson FindOrCreateSpeaker(string speaker, FdoCache cache)
{
if(cache.LanguageProject.PeopleOA != null)
{
//find and return a person in this project whose name matches the speaker
foreach (var person in cache.LanguageProject.PeopleOA.PossibilitiesOS)
{
if (person.Name.BestVernacularAnalysisAlternative.Text.Equals(speaker))
{
return (ICmPerson)person;
}
}
}
else
{
cache.LanguageProject.PeopleOA = cache.ServiceLocator.GetInstance<ICmPossibilityListFactory>().Create();
}
//person not found create one and add it.
var newPerson = cache.ServiceLocator.GetInstance<ICmPersonFactory>().Create();
cache.LanguageProject.PeopleOA.PossibilitiesOS.Add(newPerson);
newPerson.Name.set_String(cache.DefaultVernWs, speaker);
return newPerson;
}