예제 #1
0
        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;
        }
예제 #2
0
        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;
        }
예제 #3
0
        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;
        }