コード例 #1
0
        /// <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));
        }
コード例 #2
0
        /// <summary>
        /// Finishes the customer creation process started by Customer.Initiate().  Requires the answers to the questions as well as the verificationId and question types supplied from the Customer.Initiate() call.  When this call has returned successfully, the customer is active.
        /// </summary>
        /// <param name="request"></param>
        /// <param name="connection"></param>
        /// <returns></returns>
        public CustomerResponse Verify(CustomerVerifyRequest request, Connection connection = null, object userDefinedObjectForLogging = null)
        {
            connection = connection ?? Connection.CreateFromConfig();
            var rv = Requestor.Post <CustomerResponse>("customer/verify", connection, request, userDefinedObjectForLogging);

            if (rv != null)
            {
                request.RequestId = rv.RequestId;
            }
            return(rv);
        }
コード例 #3
0
        public async Task <VerifyPasswordResponse> VerifyCustomer(CustomerVerifyRequest customerVerifyRequest)
        {
            var cdkCustomer = _cdkCustomerService.GetCdkCustomer(customerVerifyRequest.CommunityId, customerVerifyRequest.CustomerNo);

            if (cdkCustomer == null)
            {
                throw new CustomerNotRegisterException($"Customer with CustomerNo {customerVerifyRequest.CustomerNo} has not been requested");
            }

            // Request Token from CDK Autoline service.
            var startTime = DateTime.Now;
            var timer     = System.Diagnostics.Stopwatch.StartNew();
            var token     =
                await _tokenService.GetCustomerToken(cdkCustomer, customerVerifyRequest.RoofTopId);

            _telemetryClient?.TrackDependency("CDKAutolineService", "GetCustomerToken",
                                              $"CommunictyId: {customerVerifyRequest.CommunityId}, CustomerLoginId: {cdkCustomer.CustomerLoginId}", startTime,
                                              timer.Elapsed,
                                              token != null);

            return(new VerifyPasswordResponse {
                CDKAutolineToken = token, CustomerLoginId = cdkCustomer.CustomerLoginId
            });
        }
コード例 #4
0
        /// <summary>
        /// Finishes the customer creation process started by Customer.Initiate().  Requires the answers to the questions as well as the verificationId and question types supplied from the Customer.Initiate() call.  When this call has returned successfully, the customer is active.
        /// </summary>
        /// <param name="request"></param>
        /// <param name="connection"></param>
        /// <returns></returns>
        public async Task <CustomerResponse> VerifyAsync(CancellationToken cancellationToken, CustomerVerifyRequest request, Connection connection = null, object userDefinedObjectForLogging = null)
        {
            connection = connection ?? Connection.CreateFromConfig();
            var rv = await Requestor.PostAsync <CustomerResponse>(cancellationToken, "customer/verify", connection, request, userDefinedObjectForLogging);

            request.RequestId = rv.RequestId;
            return(rv.Data);
        }
コード例 #5
0
 public async static Task <CustomerResponse> VerifyAsync(CancellationToken cancellationToken, int?customerId, CustomerVerifyRequest request, Connection connection = null, object userDefinedObjectForLogging = null)
 {
     return(await new Customer(customerId).VerifyAsync(cancellationToken, request, connection, userDefinedObjectForLogging));
 }
コード例 #6
0
 public static CustomerResponse Verify(int?customerId, CustomerVerifyRequest request, Connection connection = null, object userDefinedObjectForLogging = null)
 {
     return(new Customer(customerId).Verify(request, connection, userDefinedObjectForLogging));
 }