SIL.FieldWorks.IText.LinguaLinksImport.FindOrCreateSpeaker C# (CSharp) Method

FindOrCreateSpeaker() private static method

private static FindOrCreateSpeaker ( string speaker, SIL.FieldWorks.FDO.FdoCache cache ) : ICmPerson
speaker string
cache SIL.FieldWorks.FDO.FdoCache
return ICmPerson
		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;
		}