First pass at DistrictServiceProvider:
Encapsulates the district assignment logic and provides boundary checking and fallback