/// <summary> /// Check password from SOL api. /// </summary> /// <param name="customerVerifyRequest"></param> /// <param name="cdkCustomer"></param> /// <returns></returns> public async Task <ApiResponse> CheckPassword(CustomerVerifyRequest customerVerifyRequest, CdkCustomer cdkCustomer, string partnerKey) { if (customerVerifyRequest == null) { throw new ArgumentNullException(nameof(customerVerifyRequest)); } if (cdkCustomer == null) { throw new ArgumentNullException(nameof(cdkCustomer)); } var requestBody = UtilityHelper.SerializeObject(new { RooftopId = customerVerifyRequest.RoofTopId }); var request = new ApiRequest { Body = requestBody, Method = HttpVerbs.POST.ToString(), Url = CombineUrl(GetCdkAutolineUrl(_cdkAutolineUrl, customerVerifyRequest.CommunityId), CheckPasswordUrl), ContentType = Constants.ContentTypeJson }; var hashCode = _encryptedTokenCodeService.GetEncryptedTokenCode(cdkCustomer.Token.ToString(), cdkCustomer, partnerKey, true); AddRequestHeader(request, $"{Constants.DataHubHashHeaderValuePrefix}{hashCode}"); return(await _restApiClient.Invoke <CustomerResponse>(request)); }
/// <summary> /// Activate token generated by API(/RequestToken). /// </summary> /// <param name="communityId"></param> /// <param name="appToken"></param> /// <returns></returns> public async Task <ApiResponse> ActivateToken(string communityId, string appToken, string partnerKey) { var request = new ApiRequest() { Body = string.Empty, Method = HttpVerbs.POST.ToString(), Url = CombineUrl(GetCdkAutolineUrl(_cdkAutolineUrl, communityId), ActivateTokenUrl), ContentType = Constants.ContentTypeJson }; var hashCode = _encryptedTokenCodeService.GetEncryptedTokenCode(appToken, null, partnerKey); AddRequestHeader(request, $"{Constants.DataHubHashHeaderValuePrefix}{hashCode}"); return(await _restApiClient.Invoke <CustomerResponse>(request)); }
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); }
internal async Task <ApiResponse> RequestCreateServiceBooking(CdkCreateServiceBookingRequest serviceRequest, string communityId, string token) { IsoDateTimeConverter converter = new IsoDateTimeConverter { DateTimeFormat = ServiceBookingDateFormat }; var requestBody = UtilityHelper.SerializeObject(serviceRequest, converter); var request = new ApiRequest { Body = requestBody, Method = HttpVerbs.POST.ToString(), Url = CombineUrl(GetCdkAutolineUrl(_cdkAutolineUrl, communityId), CreateServiceBookingUrl), ContentType = Constants.ContentTypeJson, Accept = Constants.ContentTypeJson }; AddRequestHeader(request, $"{Constants.DataHubTokenHeaderValuePrefix}{token}"); return(await _restApiClient.Invoke <CreateServiceBookingResponse>(request)); }