Family Tree?

Здравейте.Намерих 1 решение на тази задача - https://github.com/MilenaPetkanova/csharp-oop-basics/tree/master/0102-Defining-Classes-Exercises/0113-Familly-Tree

Но проблемът е  че не ми е ясна тази част от кода

private static Person AddParentAndChildInfo(string personInfo, List<Person> famillyTree, Person person)

{
            if (IsBirthday(personInfo))
            {
                person = famillyTree.FirstOrDefault (p => p.BirthDate == personInfo);
            }
            else
            {
                person = famillyTree.FirstOrDefault(p => p.Name == personInfo);
            }
            return person;
 }

Не ми е ясно какво става, трябва имената или числата  да са равни ли?Помощ