public static string Transform(string newUriText, ParameterDescriptionEx d)
        {
            if (d.ParameterDescriptor.ParameterBinder == ParameterBinder.FromQuery)
            {
                bool queryExists = newUriText.Contains("?");
                newUriText += queryExists ? "&" : "?";

                if (d.ParameterDescriptor.ParameterType == typeofString && d.ParameterTypeReference.ArrayRank == 0)
                {
                    if (d.ParameterTypeReference.BaseType == "System.String")
                    {
                        return(newUriText += $"{d.QName}=\" + ({d.Name}==null? \"\" : Uri.EscapeDataString({d.Name}))+\"");
                    }
                    else
                    {
                        return(newUriText += $"{d.QName}=\" + {d.Name}+\"");
                    }
                }
                else if (d.ParameterDescriptor.ParameterType == typeofDateTime || d.ParameterDescriptor.ParameterType == typeofDateTimeOffset)
                {
                    return(newUriText += $"{d.QName}=\" + {d.Name}.ToUniversalTime().ToString(\"yyyy-MM-ddTHH:mm:ss.fffffffZ\")+\"");
                }
                else if (d.ParameterDescriptor.ParameterType == typeofDateTimeNullable || d.ParameterDescriptor.ParameterType == typeofDateTimeOffsetNullable)
                {
                    string replaced = newUriText.Replace($"\"&{d.QName}={{{d.Name}}}", $"({d.Name}.HasValue?\"&{d.QName}=\"+{d.Name}.Value.ToUniversalTime().ToString(\"yyyy-MM-ddTHH:mm:ss.fffffffZ\"):String.Empty)+\"");
                    if (replaced == newUriText)
                    {
                        replaced = newUriText.Replace($"{d.Name}={{{d.Name}}}", $"\"+({d.Name}.HasValue?\"{d.QName}=\"+{d.Name}.Value.ToUniversalTime().ToString(\"yyyy-MM-ddTHH:mm:ss.fffffffZ\"):String.Empty)+\"");
                    }

                    return(replaced);
                }
                else if (IsNullablePrimitive(d.ParameterDescriptor.ParameterType))
                {
                    string replaced = newUriText.Replace($"\"&{d.QName}={{{d.Name}}}", $"({d.Name}.HasValue?\"&{d.QName}=\"+{d.Name}.Value.ToString():String.Empty)+\"");
                    if (replaced == newUriText)
                    {
                        replaced = newUriText.Replace($"{d.Name}={{{d.Name}}}", $"\"+({d.Name}.HasValue?\"{d.QName}=\"+{d.Name}.Value.ToString():String.Empty)+\"");
                    }

                    return(replaced);
                }
                else if (d.ParameterTypeReference.ArrayRank > 0)
                {
                    if (d.ParameterTypeReference.BaseType == "System.String")
                    {
                        string arrayQuery = $"String.Join(\"&\", {d.ParameterDescriptor.ParameterName}.Select(z => $\"{d.ParameterDescriptor.ParameterName}={{Uri.EscapeDataString(z.ToString())}}\"))+\"";
                        return(newUriText + "\"+" + arrayQuery);
                    }
                    else
                    {
                        string arrayQuery = $"String.Join(\"&\", {d.ParameterDescriptor.ParameterName}.Select(z => $\"{d.ParameterDescriptor.ParameterName}={{z}}\"))+\"";
                        return(newUriText + "\"+" + arrayQuery);
                    }
                }
                else
                {
                    return(newUriText += $"{d.QName}=\"+{d.Name}+\"");
                }
            }
            else
            {
                if (d.ParameterDescriptor.ParameterType == typeofString && d.ParameterTypeReference != null && d.ParameterTypeReference.ArrayRank == 0)
                {
                    if (d.ParameterTypeReference.BaseType == "System.String")
                    {
                        return(newUriText.Replace($"{{{d.Name}}}", $"\"+ ({d.Name}==null? \"\" : Uri.EscapeDataString({d.Name}))+\""));
                    }
                    else
                    {
                        return(newUriText.Replace($"{{{d.Name}}}", $"\"+{d.Name}+\""));
                    }
                }
                else if (d.ParameterDescriptor.ParameterType == typeofDateTime || d.ParameterDescriptor.ParameterType == typeofDateTimeOffset)
                {
                    return(newUriText.Replace($"{{{d.Name}}}", $"\"+{d.Name}.ToUniversalTime().ToString(\"yyyy-MM-ddTHH:mm:ss.fffffffZ\")+\""));
                }
                else if (d.ParameterDescriptor.ParameterType == typeofDateTimeNullable || d.ParameterDescriptor.ParameterType == typeofDateTimeOffsetNullable)
                {
                    string replaced = newUriText.Replace($"\"&{d.QName}={{{d.Name}}}", $"({d.Name}.HasValue?\"&{d.QName}=\"+{d.Name}.Value.ToUniversalTime().ToString(\"yyyy-MM-ddTHH:mm:ss.fffffffZ\"):String.Empty)+\"");
                    if (replaced == newUriText)
                    {
                        replaced = newUriText.Replace($"{d.Name}={{{d.Name}}}", $"\"+({d.Name}.HasValue?\"{d.QName}=\"+{d.Name}.Value.ToUniversalTime().ToString(\"yyyy-MM-ddTHH:mm:ss.fffffffZ\"):String.Empty)+\"");
                    }

                    return(replaced);
                }
                else if (IsNullablePrimitive(d.ParameterDescriptor.ParameterType))
                {
                    string replaced = newUriText.Replace($"\"&{d.QName}={{{d.Name}}}", $"({d.Name}.HasValue?\"&{d.QName}=\"+{d.Name}.Value.ToString():String.Empty)+\"");
                    if (replaced == newUriText)
                    {
                        replaced = newUriText.Replace($"{d.Name}={{{d.Name}}}", $"\"+({d.Name}.HasValue?\"{d.QName}=\"+{d.Name}.Value.ToString():String.Empty)+\"");
                    }

                    return(replaced);
                }
                else if (d.ParameterTypeReference != null && d.ParameterTypeReference.ArrayRank > 0)
                {
                    if (d.ParameterTypeReference.BaseType == "System.String")
                    {
                        string arrayQuery = $"String.Join(\"&\", {d.ParameterDescriptor.ParameterName}.Select(z => $\"{d.ParameterDescriptor.ParameterName}={{Uri.EscapeDataString(z.ToString())}}\"))+\"";
                        return(newUriText + "\"+" + arrayQuery);
                    }
                    else
                    {
                        string arrayQuery = $"String.Join(\"&\", {d.ParameterDescriptor.ParameterName}.Select(z => $\"{d.ParameterDescriptor.ParameterName}={{z}}\"))+\"";
                        return(newUriText + "\"+" + arrayQuery);
                    }
                }
                else
                {
                    return(newUriText.Replace($"{{{d.Name}}}", $"\"+{d.Name}+\""));
                }
            }
        }
        public static string TransformForTs(string newUriText, ParameterDescriptionEx d)
        {
            if (d.ParameterDescriptor.ParameterBinder == ParameterBinder.FromQuery)
            {
                bool queryExists = newUriText.Contains("?");
                newUriText += queryExists ? "&" : "?";

                if (d.ParameterDescriptor.ParameterType == typeofString && d.ParameterTypeReference.ArrayRank == 0)
                {
                    if (d.ParameterTypeReference.BaseType == "System.String")
                    {
                        return(newUriText += $"{d.Name}=' + ({d.Name} == null ? '' : encodeURIComponent({d.Name})) + '");
                    }
                    else
                    {
                        return(newUriText += $"{d.Name}=' + {d.Name} + '");
                    }
                }
                else if (d.ParameterDescriptor.ParameterType == typeofDateTime || d.ParameterDescriptor.ParameterType == typeofDateTimeOffset)
                {
                    return(newUriText += $"{d.Name}=' + {d.Name}.toISOString() + '");
                }
                else if (d.ParameterTypeReference.ArrayRank > 0)
                {
                    if (d.ParameterTypeReference.BaseType == "System.String")
                    {
                        string arrayQuery = $"{d.ParameterDescriptor.ParameterName}.map(z => `{d.ParameterDescriptor.ParameterName}=${{encodeURIComponent(z)}}`).join('&')";
                        return(newUriText + "' + " + arrayQuery + " + '");
                    }
                    else
                    {
                        string arrayQuery = $"{d.ParameterDescriptor.ParameterName}.map(z => `{d.ParameterDescriptor.ParameterName}=${{z}}`).join('&')";
                        return(newUriText + "' + " + arrayQuery + " + '");
                    }
                }
                else
                {
                    return(newUriText += $"{d.Name}=' + {d.Name} + '");
                }
            }
            else
            {
                if (d.ParameterDescriptor.ParameterType == typeofString && d.ParameterTypeReference.ArrayRank == 0)
                {
                    if (d.ParameterTypeReference.BaseType == "System.String")
                    {
                        return(newUriText.Replace($"{{{d.Name}}}", $"' + ({d.Name} == null ? '' : encodeURIComponent({d.Name})) + '"));
                    }
                    else
                    {
                        return(newUriText.Replace($"{{{d.Name}}}", $"' + {d.Name} + '"));
                    }
                }
                else if (d.ParameterDescriptor.ParameterType == typeofDateTime || d.ParameterDescriptor.ParameterType == typeofDateTimeOffset)
                {
                    return(newUriText.Replace($"{{{d.Name}}}", $"' + {d.Name}.toISOString() + '"));
                }
                else if (d.ParameterDescriptor.ParameterType == typeofDateTimeNullable || d.ParameterDescriptor.ParameterType == typeofDateTimeOffsetNullable)
                {
                    string replaced = newUriText.Replace($"'&{d.QName}={{{d.Name}}}", $"({d.Name} ? '&{d.QName}=' + {d.Name}.toISOString() : '') + '");
                    if (replaced == newUriText)
                    {
                        replaced = newUriText.Replace($"{d.Name}={{{d.Name}}}", $"' + ({d.Name} ? '{d.Name}=' + {d.Name}.toISOString() : '') + '");
                    }

                    return(replaced);
                }
                else if (IsNullablePrimitive(d.ParameterDescriptor.ParameterType))
                {
                    string replaced = newUriText.Replace($"'&{d.QName}={{{d.Name}}}", $"({d.Name} ? '&{d.QName}=' + {d.Name}.toString() : '') + '");
                    if (replaced == newUriText)
                    {
                        replaced = newUriText.Replace($"{d.Name}={{{d.Name}}}", $"' + ({d.Name} ? '{d.Name}=' + {d.Name}.toString() : '') + '");
                    }

                    return(replaced);
                }
                else if (d.ParameterTypeReference.ArrayRank > 0)
                {
                    if (d.ParameterTypeReference.BaseType == "System.String")
                    {
                        string arrayQuery  = $"{d.ParameterDescriptor.ParameterName}.map(z => `{d.ParameterDescriptor.ParameterName}=${{encodeURIComponent(z)}}`).join('&')";
                        string placeHolder = $"{d.ParameterDescriptor.ParameterName}={{{d.ParameterDescriptor.ParameterName}}}";
                        return(newUriText.Replace(placeHolder, "' + " + arrayQuery));
                    }
                    else
                    {
                        string arrayQuery  = $"{d.ParameterDescriptor.ParameterName}.map(z => `{d.ParameterDescriptor.ParameterName}=${{z}}`).join('&')";
                        string placeHolder = $"{d.ParameterDescriptor.ParameterName}={{{d.ParameterDescriptor.ParameterName}}}";
                        return(newUriText.Replace(placeHolder, "' + " + arrayQuery));
                    }
                }
                else
                {
                    return(newUriText.Replace($"{{{d.Name}}}", $"' + {d.Name} + '"));
                }
            }
        }