public async Task <IEnumerable <Make> > GetMakes()
        {
            HttpResponseMessage httpResponseMessage = await _httpClient.GetAsync("https://vpic.nhtsa.dot.gov/api/vehicles/getallmakes?format=json");

            VehicleApiResponse <MakeResult>?makeResult = await httpResponseMessage.ConvertResponseToObject <VehicleApiResponse <MakeResult> >();

            return(makeResult?.Results.Select(x => new Make
            {
                VpicId = x.MakeId,
                MakeName = x.MakeName?.ToUpper()
            }).Where(x => !string.IsNullOrEmpty(x.MakeName) && x.VpicId.HasValue).GroupBy(x => x.MakeName, x => x).Select(x => x.FirstOrDefault()) ?? Enumerable.Empty <Make>());
        }
        public async Task <IEnumerable <VinDecodeResult> > DecodeVin(string vin, int?modelYear = null)
        {
            string url = modelYear.HasValue
                ? $"https://vpic.nhtsa.dot.gov/api/vehicles/decodevin/{vin}?format=json&modelyear={modelYear}"
                : $"https://vpic.nhtsa.dot.gov/api/vehicles/decodevin/{vin}?format=json";

            HttpResponseMessage httpResponseMessage = await _httpClient.GetAsync(url);

            VehicleApiResponse <VinDecodeResult>?vinDecodeResult = await httpResponseMessage.ConvertResponseToObject <VehicleApiResponse <VinDecodeResult> >();

            return(vinDecodeResult?.Results ?? Enumerable.Empty <VinDecodeResult>());
        }
        public async Task <IEnumerable <Model> > GetModels(Make make)
        {
            HttpResponseMessage httpResponseMessage = await _httpClient.GetAsync($"https://vpic.nhtsa.dot.gov/api/vehicles/GetModelsForMakeId/{make.VpicId}?format=json");

            VehicleApiResponse <ModelResult>?modelResult = await httpResponseMessage.ConvertResponseToObject <VehicleApiResponse <ModelResult> >();

            return(modelResult?.Results.Select(x => new Model
            {
                Make = make,
                MakeId = make.MakeId,
                ModelName = x.ModelName?.ToUpper(),
                VpicId = x.ModelId
            }).Where(x => !string.IsNullOrEmpty(x.ModelName) && x.VpicId.HasValue).GroupBy(x => x.ModelName, x => x).Select(x => x.FirstOrDefault()) ?? Enumerable.Empty <Model>());
        }