IEnumerable <DepartmentViewModel> FindMatches(string searchText, DepartmentViewModel person)
        {
            if (person.NameContainsText(searchText))
            {
                yield return(person);
            }

            foreach (DepartmentViewModel child in person.Children)
            {
                foreach (DepartmentViewModel match in this.FindMatches(searchText, child))
                {
                    yield return(match);
                }
            }
        }
        IEnumerable<DepartmentViewModel> FindMatches(string searchText, DepartmentViewModel person)
        {
            if (person.NameContainsText(searchText))
                yield return person;

            foreach (DepartmentViewModel child in person.Children)
                foreach (DepartmentViewModel match in this.FindMatches(searchText, child))
                    yield return match;
        }