예제 #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);
        }
        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));
 }