Exemplo n.º 1
0
 private static void PopulateRequiredFields(SenderLookupInfo senderInfo, Dictionary <string, string> infoKeysWithGroupTypes, string thirdPartyType, List <KeyValuePairType> fldValues, List <string> reqFld)
 {
     foreach (var key in reqFld)
     {
         KeyValuePairType newFldVal = FromSenderInfo(senderInfo, key);
         if (newFldVal == null)
         {
             if (key == InfoKeyNames.thirdParty_Sender_Type) //TODO: Verify whether ThirdPartyType.NONE/null works.
             {
                 newFldVal = GetFieldValueItem(key, thirdPartyType ?? TestThirdPartyType.None);
             }
             else if (infoKeysWithGroupTypes.Keys.Contains(key) && (infoKeysWithGroupTypes[key] == InfoKeyGroups.PersonalIdNumber))
             {
                 var correspondingIdTypeInfoKey = key.Substring(0, key.LastIndexOf("_") + 1) + "Type";
                 var idType = fldValues.FirstOrDefault(x => x.InfoKey == correspondingIdTypeInfoKey).Value;
                 newFldVal = GetFieldValueItem(key, DataGenerator.PersonalIdNumber(idType));
             }
             else
             {
                 newFldVal = GetFieldValueItem(key, infoKeysWithGroupTypes.Keys.Contains(key) ? DataGenerator.GetRandomData(infoKeysWithGroupTypes[key]) : string.Empty);
             }
         }
         fldValues.Add(newFldVal);
     }
 }
Exemplo n.º 2
0
        private static KeyValuePairType FromSenderInfo(SenderLookupInfo senderInfo, string reqInfoKey)
        {
            KeyValuePairType currVal = senderInfo.CurrentValues.Exists(x => x.InfoKey == reqInfoKey) ?
                                       senderInfo.CurrentValues.First(x => x.InfoKey == reqInfoKey) : null;

            return(currVal);
        }
Exemplo n.º 3
0
        public static SendValidationRequest NewRequestWithRequiredFieldValues(SenderLookupInfo senderInfo, FeeInfo feeInfo, Dictionary <string, string> infoKeysWithGroupTypes, List <InfoBase> fieldsToCollect, string thirdPartyType)
        {
            var newReq = NewRequestWithBaseData();

            var reqFldValues = GetFieldValues(fieldsToCollect.OfType <FieldToCollectInfo>(), senderInfo, infoKeysWithGroupTypes, thirdPartyType);

            newReq.FieldValues.AddRange(reqFldValues);

            if (newReq.FieldValues.Exists(x => x.InfoKey == InfoKeyNames.sender_Occupation))
            {
                var senderOccupationFld = newReq.FieldValues.First(x => x.InfoKey == InfoKeyNames.sender_Occupation);
                if ((senderOccupationFld.Value.ToLower() != "other") && (newReq.FieldValues.Exists(x => x.InfoKey == InfoKeyNames.sender_OccupationOther)))
                {
                    var senderOtherOccupationFld = newReq.FieldValues.First(x => x.InfoKey == InfoKeyNames.sender_OccupationOther);
                    newReq.FieldValues.Remove(senderOtherOccupationFld);
                }
            }
            return(newReq);
        }
Exemplo n.º 4
0
 public void Set(SenderLookupInfo senderLookupInfo)
 {
     SenderInfo = senderLookupInfo;
     SetExecutionOrder(nameof(SenderInfo));
 }
Exemplo n.º 5
0
        public static List <KeyValuePairType> GetFieldValues(IEnumerable <FieldToCollectInfo> categoryFieldsToCollect, SenderLookupInfo senderInfo, Dictionary <string, string> infoKeysWithGroupTypes, string thirdPartyType)
        {
            List <KeyValuePairType> fldValues = new List <KeyValuePairType>();

            #region PopulateEnumFieldValues
            //Get keyvalues for enum fields
            foreach (var enumItem in categoryFieldsToCollect.Where(x => x.DataType == DataType.@enum).ToList())
            {
                var enumeration     = enumItem.Enumeration;
                var enumeratedItems = enumeration.EnumeratedItems.Select(x => x.Identifier).ToList();
                var fldValue        = GetFieldValueItem(enumItem.InfoKey, DataGenerator.GetRandomItemFromList(enumeratedItems));
                fldValues.Add(fldValue);

                if (enumItem.ChildFields != null)
                {
                    var matchingChildField      = enumItem.ChildFields.FirstOrDefault(x => x.FieldValue == fldValue.Value);
                    var requiredChildFieldInfos = matchingChildField?.Infos.OfType <FieldToCollectInfo>().Where(x => x.Required == true).ToList() ?? new List <FieldToCollectInfo>();
                    if (requiredChildFieldInfos?.Count() > 0)
                    {
                        PopulateRequiredFields(senderInfo, infoKeysWithGroupTypes, thirdPartyType, fldValues, requiredChildFieldInfos.Select(x => x.InfoKey).ToList());
                    }
                }
            }
            #endregion

            #region PopulateFieldValues
            if (!categoryFieldsToCollect.Any())
            {
                return(fldValues);
            }
            List <string> reqFld = categoryFieldsToCollect.Where(x => (x.DataType != DataType.@enum)).Select(x => x.InfoKey).ToList();
            PopulateRequiredFields(senderInfo, infoKeysWithGroupTypes, thirdPartyType, fldValues, reqFld);
            #endregion

            return(fldValues);
        }