public async Task <DistrictsInState> GetAllDistrictsInState(State matchingState)
        {
            var request = new HttpRequestMessage(HttpMethod.Get, $"{pathDistrictsInState}/{matchingState.Id}");

            request.Headers.Add("Accept", "application/json");

            try {
                using (var response = await httpClient.SendAsync(request)) {
                    if (!response.IsSuccessStatusCode)
                    {
                        logger.LogError($"Error fetching districts in state {matchingState}. Http Response Code: {response.StatusCode}");
                        return(DistrictsInState.EmptyObject());
                    }

                    var responseJson = await response.Content.ReadAsStringAsync();

                    var districtsInState = JsonSerializer.Deserialize <DistrictsInState>(responseJson, new JsonSerializerOptions {
                        AllowTrailingCommas = true,
                        IgnoreNullValues    = true,
                    });

                    return(districtsInState);
                }
            }
            catch (Exception ex) {
                logger.LogError(ex, $"Error fetching districts in state {matchingState}");
                return(null);
            }
        }
        public Task ShowDistrictsToUser(DistrictsInState districtsInState, string state)
        {
            var sb = new StringBuilder($"---------- Districts in {state} ----------\n");

            foreach (var district in districtsInState.Districts)
            {
                sb.AppendLine($"{district.Name}, ID: {district.Id}");
            }

            Console.WriteLine(sb.ToString());
            return(Task.CompletedTask);
        }