/// <summary>
        ///     SEND SendValidation AgentConnect call
        /// </summary>
        /// <param name="sendValidationReq">SendValidationRequest Model</param>
        /// <returns>SendValidationResponse Model</returns>
        public SendValidationResponse SendValidation(SendValidationRequest sendValidationReq)
        {
            var agent    = AuthIntegration.GetAgent();
            var response = _agentConnect.SendValidation(agent, sendValidationReq);

            CheckFlagsForDataChange(response.Payload?.Flags, agent);
            return(response);
        }
Ejemplo n.º 2
0
        public void Set(SendValidationRequest sendValidationRequest)
        {
            var isFirstSet = !SendValidationReqs.Any();

            SendValidationReqs.Add(sendValidationRequest);
            if (isFirstSet)
            {
                SetExecutionOrder(nameof(SendValidationReqs));
            }
        }
Ejemplo n.º 3
0
        public override SendValidationResponse SendValidation(Agent agent, SendValidationRequest request)
        {
            if (agent.IsInTrainingMode && _traingModeRepository.IsStagedTransaction(SessionType.SEND, request.MgiSessionID))
            {
                bool shouldReturnThermal = !GetProfileItem(agent, UseAgentPrinterKey);
                return(_traingModeRepository.MockSendValidationResponse(request.MgiSessionID, request.FieldValues, shouldReturnThermal));
            }

            return(base.SendValidation(agent, request));
        }
Ejemplo n.º 4
0
 public static SendValidationRequest FromFeeInfo(this SendValidationRequest sendValReq, FeeInfo feeInfo)
 {
     sendValReq.MgiSessionID       = feeInfo.MgiSessionID;
     sendValReq.SendAmount         = feeInfo.SendAmounts.SendAmount.GetValueOrDefault();
     sendValReq.SendCurrency       = feeInfo.SendAmounts.SendCurrency;
     sendValReq.PromoCodes         = feeInfo.PromotionInfos?.Select(x => x.PromotionCode).ToList();
     sendValReq.DestinationCountry = feeInfo.DestinationCountry;
     sendValReq.ServiceOption      = feeInfo.ServiceOption;
     sendValReq.ReceiveCurrency    = feeInfo.ReceiveAmounts.ReceiveCurrency;
     if (!string.IsNullOrWhiteSpace(feeInfo.ReceiveAgentID))
     {
         sendValReq.ReceiveAgentID = feeInfo.ReceiveAgentID;
     }
     return(sendValReq);
 }
Ejemplo n.º 5
0
        private static SendValidationRequest MapFieldValues(SendValidationRequest sendValReq, List <KeyValuePairType> populatedFields, List <string> requestedInfoKeys, SendValidationRequest previousRequest, List <string> monitoredListOfFieldsToCollect)
        {
            if (populatedFields == null)
            {
                return(sendValReq);
            }
            // Dont map anything if there is nothing requested.
            if (!requestedInfoKeys.Any())
            {
                return(sendValReq);
            }
            var availableKeys = populatedFields.Select(x => x.InfoKey).ToList();
            var keysToMap     = availableKeys.Union(requestedInfoKeys);

            foreach (var key in keysToMap)
            {
                if (availableKeys.Contains(key))
                {
                    var pairToAdd = populatedFields.Where(k => k.InfoKey == key).FirstOrDefault();
                    if (!sendValReq.FieldValues.Any(x => x.InfoKey == pairToAdd.InfoKey))
                    {
                        if (!string.IsNullOrWhiteSpace(pairToAdd.Value))
                        {
                            sendValReq.FieldValues.Add(pairToAdd);
                            if (monitoredListOfFieldsToCollect != null && monitoredListOfFieldsToCollect.Contains(pairToAdd.InfoKey))
                            {
                                monitoredListOfFieldsToCollect.Remove(pairToAdd.InfoKey);
                            }
                        }
                    }
                }
            }
            if (previousRequest != null && previousRequest.FieldValues.Any())
            {
                foreach (var keyPair in previousRequest.FieldValues)
                {
                    if (!sendValReq.FieldValues.Any(x => x.InfoKey == keyPair.InfoKey))
                    {
                        sendValReq.FieldValues.Add(keyPair);
                        if (monitoredListOfFieldsToCollect != null && monitoredListOfFieldsToCollect.Contains(keyPair.InfoKey))
                        {
                            monitoredListOfFieldsToCollect.Remove(keyPair.InfoKey);
                        }
                    }
                }
            }
            return(sendValReq);
        }
Ejemplo n.º 6
0
 public static SendValidationRequest FromFeeLookupRequest(this SendValidationRequest sendValReq, FeeLookupRequest feeLookupRequest, List <string> requestedInfoKeys)
 {
     if (!requestedInfoKeys.Any() || !requestedInfoKeys.Contains("destination_Country_SubdivisionCode"))
     {
         return(sendValReq);
     }
     // Check if it exists, dont want to keep re-adding on each subsequent request.
     if (sendValReq.FieldValues.Any(x => x.InfoKey == "destination_Country_SubdivisionCode"))
     {
         return(sendValReq);
     }
     if (string.IsNullOrWhiteSpace(feeLookupRequest.DestinationCountrySubdivisionCode))
     {
         return(sendValReq);
     }
     // Explicitly added
     sendValReq.FieldValues.Add(new KeyValuePairType {
         InfoKey = "destination_Country_SubdivisionCode", Value = feeLookupRequest.DestinationCountrySubdivisionCode
     });
     return(sendValReq);
 }
Ejemplo n.º 7
0
        public static SendValidationRequest FromMockData(this SendValidationRequest sendValReq)
        {
            sendValReq.FieldValues = sendValReq.FieldValues ?? new List <KeyValuePairType>();
            sendValReq.FieldValues.Clear();

            //add all required fields
            sendValReq.FieldValues.Add(InfoKeyWithValues.GetFieldValue(InfoKeyNames.sender_LastName));
            sendValReq.FieldValues.Add(InfoKeyWithValues.GetFieldValue(InfoKeyNames.sender_Address));
            sendValReq.FieldValues.Add(InfoKeyWithValues.GetFieldValue(InfoKeyNames.sender_Birth_Country));
            sendValReq.FieldValues.Add(InfoKeyWithValues.GetFieldValue(InfoKeyNames.sender_City));
            sendValReq.FieldValues.Add(InfoKeyWithValues.GetFieldValue(InfoKeyNames.sender_DOB));
            sendValReq.FieldValues.Add(InfoKeyWithValues.GetFieldValue(InfoKeyNames.sender_Country));
            sendValReq.FieldValues.Add(InfoKeyWithValues.GetFieldValue(InfoKeyNames.sender_Occupation));
            sendValReq.FieldValues.Add(InfoKeyWithValues.GetFieldValue(InfoKeyNames.receiver_LastName));
            sendValReq.FieldValues.Add(InfoKeyWithValues.GetFieldValue(InfoKeyNames.primaryReceiptLanguage));
            sendValReq.FieldValues.Add(InfoKeyWithValues.GetFieldValue(InfoKeyNames.sender_PrimaryPhoneCountryCode));
            sendValReq.FieldValues.Add(InfoKeyWithValues.GetFieldValue(InfoKeyNames.sender_PrimaryPhone));
            sendValReq.FieldValues.Add(InfoKeyWithValues.GetFieldValue(InfoKeyNames.receiver_PrimaryPhoneCountryCode));
            sendValReq.FieldValues.Add(InfoKeyWithValues.GetFieldValue(InfoKeyNames.receiver_PrimaryPhone));
            sendValReq.FieldValues.Add(InfoKeyWithValues.GetFieldValue(InfoKeyNames.sender_FirstName));
            sendValReq.FieldValues.Add(InfoKeyWithValues.GetFieldValue(InfoKeyNames.receiver_FirstName));

            return(sendValReq);
        }
Ejemplo n.º 8
0
 public virtual async Task <SendValidationResponse> SendValidationAsync(Agent agent, SendValidationRequest sendValidationRequest)
 {
     return(await AgentConnect.SendValidationAsync(agent, sendValidationRequest));
 }
Ejemplo n.º 9
0
 public virtual SendValidationResponse SendValidation(Agent agent, SendValidationRequest sendValidationRequest)
 {
     return(AgentConnect.SendValidation(agent, sendValidationRequest));
 }
Ejemplo n.º 10
0
        public IHttpActionResult SendValidation(SendValidationRequest sendValidationRequest)
        {
            var sendValidateRespVm = _sendBusiness.SendValidation(sendValidationRequest);

            return(Ok(sendValidateRespVm));
        }
Ejemplo n.º 11
0
        public AcApiResponse <SendValidationResponse, ReceiptsApiData> SendValidation(SendValidationRequest req)
        {
            //Create request business object for agent connect service call
            req.PrimaryReceiptLanguage   = AuthIntegration.GetAgentPrimaryReceiptLanguage();
            req.SecondaryReceiptLanguage = AuthIntegration.GetAgentSecondaryReceiptLanguage();

            // AgentConnect sendValidation call for SEND
            var resp = _agentConnectIntegration.SendValidation(req);

            // Process Receipt
            var additionalData = ReceiptHelper.GenerateAdditionalDataReceipts(resp.Payload?.Receipts, _receiptIntegration);

            // Return Response View Model
            var apiResp = new AcApiResponse <SendValidationResponse, ReceiptsApiData>
            {
                BusinessMetadata = MapperHelper.SetResponseProperties(resp.Payload?.Flags, DataSource.AgentConnect),
                ResponseData     = resp,
                AdditionalData   = additionalData
            };

            return(apiResp);
        }
Ejemplo n.º 12
0
 public static SendValidationRequest FromReceiver(this SendValidationRequest sendValReq, List <KeyValuePairType> receiverFields, List <string> requestedInfoKeys, SendValidationRequest previousRequest = null, List <string> monitoredListOfFieldsToCollect = null)
 {
     return(MapFieldValues(sendValReq, receiverFields, requestedInfoKeys, previousRequest, monitoredListOfFieldsToCollect));
 }