public CdkCustomer MapCdkCustomer(CustomerVehicleRegisterRequest customerVehicleRegisterRequest) { if (customerVehicleRegisterRequest == null) { throw new ArgumentNullException(nameof(customerVehicleRegisterRequest)); } return(new CdkCustomer { CommunityId = customerVehicleRegisterRequest.CommunityId, CustomerNo = customerVehicleRegisterRequest.CustomerNo, CustomerLoginId = $"{customerVehicleRegisterRequest.CommunityId}{customerVehicleRegisterRequest.RoofTopId}{customerVehicleRegisterRequest.CustomerNo}", Password = _passwordService.GeneratePassword() }); }
public async Task <string> RegisterCustomer(CustomerVehicleRegisterRequest customerVehicleRegisterRequest) { customerVehicleRegisterRequest.AppToken = await _tokenService.GetAppToken(customerVehicleRegisterRequest.CommunityId, customerVehicleRegisterRequest.RoofTopId); var cdkCustomer = _cdkCustomerService.MapCdkCustomer(customerVehicleRegisterRequest); // Send request to register customer on CDK auto line api var registerApiResponse = await _customerService.RegisterCustomer(customerVehicleRegisterRequest, cdkCustomer); if (registerApiResponse == null || !registerApiResponse.Success) { throw new CDKAutolineException(UtilityHelper.SerializeObject(registerApiResponse?.Errors)); } await _cdkCustomerService.SaveCdkCustomer(cdkCustomer); return($"Customer {cdkCustomer.CustomerLoginId} registered successfully"); }
public void MapCdkCustomerl_NoEmailUsePhoneAsCustomerLoginId_Test() { var customerVehicleRegisterRequest = new CustomerVehicleRegisterRequest { CommunityId = "TestCommunity", CustomerNo = 11, EmailAddress = "", RoofTopId = "TestRoofTop" }; var customerLoginId = "TestCommunityTestRoofTop11"; var cdkCustomer = _underTest.MapCdkCustomer(customerVehicleRegisterRequest); Assert.AreEqual(customerVehicleRegisterRequest.CommunityId, cdkCustomer.CommunityId); Assert.AreEqual(customerVehicleRegisterRequest.CustomerNo, cdkCustomer.CustomerNo); Assert.AreEqual(customerLoginId, cdkCustomer.CustomerLoginId); Assert.AreEqual(Password, cdkCustomer.Password); Assert.IsNull(cdkCustomer.Token); }
/// <summary> /// Registered customer in CDK Autoline services. /// </summary> /// <param name="customerVehicleRegisterRequest"></param> /// <param name="cdkCustomer"></param> /// <returns></returns> public async Task <ApiResponse> RegisterCustomer(CustomerVehicleRegisterRequest customerVehicleRegisterRequest, CdkCustomer cdkCustomer) { if (customerVehicleRegisterRequest == null) { throw new ArgumentNullException(nameof(customerVehicleRegisterRequest)); } if (cdkCustomer == null) { throw new ArgumentNullException(nameof(cdkCustomer)); } var requestBody = UtilityHelper.SerializeObject(new { customerVehicleRegisterRequest.CommunityId, customerVehicleRegisterRequest.RoofTopId, CustomerId = cdkCustomer.CustomerLoginId, CustomerIdType = CustomerIdType.Other, cdkCustomer.Password, customerVehicleRegisterRequest.FirstName, SurName = customerVehicleRegisterRequest.Surname, customerVehicleRegisterRequest.EmailAddress, MobileTelNo = customerVehicleRegisterRequest.PhoneNumber }); var request = new ApiRequest { Body = requestBody, Method = HttpVerbs.POST.ToString(), Url = CombineUrl(GetCdkAutolineUrl(_cdkAutolineUrl, customerVehicleRegisterRequest.CommunityId), RegisterCustomerUrl), ContentType = Constants.ContentTypeJson }; AddRequestHeader(request, $"{Constants.DataHubAppTokenHeaderValuePrefix}{customerVehicleRegisterRequest.AppToken}"); return(await _restApiClient.Invoke <CustomerResponse>(request)); }