private FindResult Find(FindType findType) { var allAgeDifferences = CalculateAllAgeDifferences(); var answer = new FindResult(); if (allAgeDifferences.Any()) { var ordered = from result in allAgeDifferences orderby result.Difference ascending select result; switch (findType) { case FindType.Closest: answer = ordered.First(); break; case FindType.Furthest: answer = ordered.Last(); break; } } return answer; }
private static FindResult CreateFindResultFromTwoThings(Thing right, Thing left) { var r = new FindResult(); if (left.BirthDate < right.BirthDate) { r.Oldest = left; r.Youngest = right; } else { r.Oldest = right; r.Youngest = left; } r.Difference = r.Youngest.BirthDate - r.Oldest.BirthDate; return r; }
internal static FindResult Compare(Person person1, Person person2) { var result = new FindResult(); if (person1.BirthDate < person2.BirthDate) { result.OlderPerson = person1; result.YoungerPerson = person2; } else { result.OlderPerson = person2; result.YoungerPerson = person1; } result.AgeDifference = result.YoungerPerson.BirthDate - result.OlderPerson.BirthDate; return result; }