private IEnumerable<LocationGroup> RequeryIfRequired(ICollection<LocationGroup> results, string addressQuery, ILocationGroupingStrategy groupingStrategy) { var locationsSum = results.Sum(g => g.LocationsCount); if (!results.Any() || locationsSum == 0) return results; if (results.HasSingleGroup() || locationsSum < GROUPING_THRESHOLD) { var groupingStrategyBuilder = new LocationGroupingStrategyBuilder(_locationQueryFields.PrimaryText) .ThenBy(_locationQueryFields.SecondaryText) .ThenBy(_locationQueryFields.HouseNumber) .ThenBy(groupingStrategy); return _groupRepository.FindGroupedLocations(addressQuery, groupingStrategyBuilder.Build()); } return results; }