private static Uri GetUri()

in src/Microsoft.Azure.SignalR.Common/Utilities/RestClient.cs [94:122]


    private static Uri GetUri(string url, IDictionary<string, StringValues>? query)
    {
        if (query == null || query.Count == 0)
        {
            return new Uri(url);
        }
        var builder = new UriBuilder(url);
        var sb = new StringBuilder(builder.Query);
        if (sb.Length == 1 && sb[0] == '?')
        {
            sb.Clear();
        }
        else if (sb.Length > 0 && sb[0] != '?')
        {
            sb.Insert(0, '?');
        }
        foreach (var item in query)
        {
            foreach (var value in item.Value)
            {
                sb.Append(sb.Length > 0 ? '&' : '?');
                sb.Append(Uri.EscapeDataString(item.Key));
                sb.Append('=');
                sb.Append(Uri.EscapeDataString(value!));
            }
        }
        builder.Query = sb.ToString();
        return builder.Uri;
    }