public List <Person> FindPeopleAndRelations(int?gender, string name, bool includeAncestors, int maxRecordsToDisplay) { var data = StaticCache.GetData(); if (data == null) { return(null); } var query = data.People.Where(p => p.Name.Equals(name, StringComparison.CurrentCultureIgnoreCase)); var personOfInterest = query.FirstOrDefault(); if (personOfInterest == null) { return(null); } var results = BuildUpList(personOfInterest, maxRecordsToDisplay, gender, includeAncestors); if (results == null) { return(null); } foreach (var person in results) { person.BirthPlace = StaticCache.GetPlaceById(person.Place_Id); } return(results); }
public List <Person> FindPeople(int?gender, string name) { var data = StaticCache.GetData(); if (data == null) { return(null); } var query = data.People.Where(p => p.Name.IndexOf(name, StringComparison.CurrentCultureIgnoreCase) >= 0); if (gender.HasValue) { query = query.Where(p => p.Gender.Equals((Enums.Gender)gender.Value == Enums.Gender.Male ? "M" : "F")); } var results = query.ToList(); foreach (var person in results) { person.BirthPlace = StaticCache.GetPlaceById(person.Place_Id); } return(results); }
private List <Person> GetDirectChildren(Person person) { var query = StaticCache.GetData().People; return(query.Where(p => p.Mother_Id == person.Id || p.Father_Id == person.Id).Select(p => p).ToList()); }