示例#1
0
        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);
        }
示例#4
0
        /// <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));
        }