public async Task <GetRecommendedServicesResponse> GetRecommendedServices(GetRecommendedServicesRequest request, DealerConfigurationResponse dealer) { if (request == null) { throw new ArgumentNullException(nameof(request)); } if (dealer == null) { throw new ArgumentNullException(nameof(dealer)); } var cdkRecommendedServiceRequest = MapRecommendedServicesRequest(request, dealer); var startTime = DateTime.Now; var timer = System.Diagnostics.Stopwatch.StartNew(); var cdkRecommendedServiceResponse = await _restfulClient.PostAsync <GetCdkRecommendedServiceRequest, CdkRecommendedServicesResponse>( GetRecommendedServicesUrl, cdkRecommendedServiceRequest); _telemetryClient?.TrackDependency("CDKAutolineService", "GetRecommendedServices", JsonConvert.SerializeObject(request), startTime, timer.Elapsed, cdkRecommendedServiceResponse != null); return(MapRecommendedServicesReponse(cdkRecommendedServiceResponse)); }
internal GetCdkRecommendedServiceRequest MapRecommendedServicesRequest(GetRecommendedServicesRequest request, DealerConfigurationResponse dealer) { var getCdkRecommendedServiceRequest = _mapper.Map <GetRecommendedServicesRequest, GetCdkRecommendedServiceRequest>(request); getCdkRecommendedServiceRequest.EstVehicleAgeMonths = GetEstVehicleAgeMonths(request.ModelYear); return(_mapper.Map(dealer, getCdkRecommendedServiceRequest)); }
public void SetUp() { _fixture = new Fixture().Customize(new AutoMoqCustomization()); _restfulClientMock = _fixture.Freeze <Mock <IRestfulClient> >(); _getRecommendedServicesRequest = _fixture.Create <GetRecommendedServicesRequest>(); _getRecommendedServicesRequest.ModelYear = "2017"; _dealerConfigurationResponse = _fixture.Create <DealerConfigurationResponse>(); _underTest = _fixture.Create <CDKAutolineService>(); }
public async Task <GetRecommendedServicesResponse> Get(GetRecommendedServicesRequest request) { if (request == null) { throw new ArgumentNullException(nameof(request)); } var dealer = await _dealerService.GetDealerConfiguration(request.DealerId); if (dealer == null) { return(null); } return(await _cdkAutolineService.GetRecommendedServices(request, dealer)); }
public async Task <GetRecommendedServicesResponse> GetRecommendedServices(GetRecommendedServicesRequest request) { if (request == null) { throw new ArgumentNullException(nameof(request)); } var requestBody = UtilityHelper.SerializeObject(new { request.RooftopId, request.MakeCode, request.ModelCode, request.EstOdometer, request.EstVehicleAgeMonths }); var cdkApiRequest = new ApiRequest { Body = requestBody, Method = HttpVerbs.POST.ToString(), Url = CombineUrl(GetCdkAutolineUrl(_cdkAutolineUrl, request.CommunityId), GetRecommendedServiceUrl), ContentType = Constants.ContentTypeJson }; var appToken = await _tokenService.GetAppToken(request.CommunityId, request.RooftopId); AddRequestHeader(cdkApiRequest, $"{Constants.DataHubAppTokenHeaderValuePrefix}{appToken}"); var startTime = DateTime.Now; var timer = System.Diagnostics.Stopwatch.StartNew(); var getRecommendedServiceApiResponse = await _restApiClient.Invoke <CDKRecommendedServiceResponse>(cdkApiRequest); _telemetryClient?.TrackDependency("CDKAutolineService", "GetRecommendedService", JsonConvert.SerializeObject(cdkApiRequest), startTime, timer.Elapsed, getRecommendedServiceApiResponse != null); _telemetryClient?.TrackTrace($"CDKAutolineService GetRecommendedService response: {JsonConvert.SerializeObject(getRecommendedServiceApiResponse)}"); if (getRecommendedServiceApiResponse?.Result == null || !getRecommendedServiceApiResponse.Success || !(getRecommendedServiceApiResponse.Result is CDKRecommendedServiceResponse cdkRecommendedServiceResponse)) { throw new CDKAutolineException(UtilityHelper.SerializeObject(getRecommendedServiceApiResponse?.Errors)); } return(cdkRecommendedServiceResponse.Results); }