private static string BuildArrayCallChainTemplate(CallChainInfo cci, string indexerVarName)
        {
            var tokens  = new List <string>(cci.CallChainProperties.Length);
            var indexer = 0;

            foreach (var call in cci.CallChainProperties)
            {
                var pt        = call.PropertyType;
                var callAsStr = pt.IsArray ? $"{call.Name}[{indexerVarName}[{indexer++}]]" : $"{call.Name}";
                tokens.Add(callAsStr);
            }

            return(string.Join('.', tokens));
        }
        public static string GetDALLookUpKey(CallChainInfo cci)
        {
            if (cci.CallChainProperties.Any(c => c.PropertyType.IsArray))
            {
                var tokens = new List <string>(cci.CallChainProperties.Length);

                foreach (var call in cci.CallChainProperties)
                {
                    var pt        = call.PropertyType;
                    var callAsStr = pt.IsArray ? $"{call.Name}[]" : $"{call.Name}";
                    tokens.Add(callAsStr.ToLower());
                }

                return(string.Join('.', tokens));
            }
            else
            {
                return(cci.CallChain.ToLower());
            }
        }