public FSVCardHolderSearchResponse CardHolderSearch(FSVCardHolderSearchRequest request)
        {
            var    cardholderSearchRequest = new cardholderSearchRequest();
            string msg  = string.Empty;
            string code = string.Empty;
            FSVCardHolderSearchResponse responseByCode;
            var client = BuildClientObject <svc_fcb38ec5ce0b4672b9870346096e51e6fsvsandboxportType0Client>(request, Utils.ORDER_CARDHOLDERSEARCH_URL);

            cardholderSearchRequest.cardNumber = request.CardNumber;
            cardholderSearchRequest.cardId     = request.CardId;
            cardholderSearchResponse res;

            using (new OperationContextScope(client.InnerChannel))
            {
                var requestMessageProperty = new HttpRequestMessageProperty();
                requestMessageProperty.Headers["Authorization"] = "Bearer " + _authService.GetOAuthToken(request);
                OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = requestMessageProperty;
                //Logger.Instance.Info(this, "CardHolderSearch-fsv-request: " + client.Endpoint + " " + Utils.GetXMLAsString(cardholderSearchRequest));
                res = client.searchCardholderAsync(cardholderSearchRequest);
                //Logger.Instance.Info(this, "CardHolderSearch-fsv-response: " + Utils.GetXMLAsString(res));
            }
            if (res != null && res.responseStatus == OrderCardHolderSearch.type.SUCCESS)
            {
                string[] lang = { "en" };
                responseByCode = ModelFactory.GetResponseByCode <FSVCardHolderSearchResponse>(true, FSVResponseCode.FSVOrderCardHolderSearchSuccess, lang);
                if (res.cardholderList != null)
                {
                    if (res?.cardholderList?.Length > 0 && res.cardholderList[0] != null)
                    {
                        var cardholder = res.cardholderList[0];
                        responseByCode.CardHolderAddress = new FSVCardAddress()
                        {
                            AddressLine1        = cardholder.addressLine1,
                            AddressLine2        = cardholder.addressLine2,
                            AddressLine3        = cardholder.addressLine3,
                            City                = cardholder.city,
                            StateOrProvinceCode = cardholder.state?.Trim(),
                            CountryCode         = cardholder.country?.Trim()
                        };
                        responseByCode.CardholderFirstName = cardholder.firstName;
                        responseByCode.CardholderLastName  = cardholder.lastName;
                        responseByCode.CardId         = cardholder.cardId;
                        responseByCode.CardStatus     = cardholder.cardStatus;
                        responseByCode.CurrentBalance = Convert.ToDouble(cardholder.currentBalance);
                        responseByCode.CardNumber     = cardholder.cardNumber;
                        responseByCode.ProgramName    = cardholder.programName?.Trim();
                        responseByCode.SubProgramName = cardholder.subprogramName?.Trim();
                    }
                }
            }
            else
            {
                if (res.message != null && res.message.Length != 0)
                {
                    msg  = res.message[0].description;
                    code = res.message[0].code;
                }
                return(this.ReturnFailed <FSVCardHolderSearchResponse>(code, msg, FSVResponseCode.FSVOrderCardHolderSearchFailed));
            }
            return(responseByCode);
        }
Пример #2
0
 public FSVCardHolderSearchResponse Post(FSVCardHolderSearchRequest request)
 {
     return(Process <FSVCardHolderSearchResponse>(() => FsvOrderApiService.Instance.CardHolderSearch(request), FSVResponseCode.FSVOrderCardHolderSearchFailed));
 }