public ICompanyBuilder BuildEmployee(string name, double salary, string title, string parentGroup) { var companySearch = new CompanyGroupSearchVisitor { Query = parentGroup }; _company.AcceptVisitor(companySearch); var results = companySearch.GetResults(); if (!results.Any()) { Console.WriteLine("No group contains the search term \"" + parentGroup + "\"."); } else if (results.Count > 1) { Console.WriteLine("More than one group contains the search term \"" + parentGroup + "\". Please refine your search."); } else { results[0].AddChild(new Employee(name, salary, title)); } return(this); }
public IList <AbstractCompanyEntity> Search(string query) { _visitor.Query = query; _company.AcceptVisitor(_visitor); return(_visitor.GetResults()); }
public static void Print(AbstractCompanyEntity company) { company.AcceptVisitor(Visitor); }