Apache.NMS.Util.URISupport.CreateUriWithQuery C# (CSharp) Метод

CreateUriWithQuery() публичный статический Метод

public static CreateUriWithQuery ( Uri uri, string query ) : Uri
uri System.Uri
query string
Результат System.Uri
        public static Uri CreateUriWithQuery(Uri uri, string query)
        {
            if(!String.IsNullOrEmpty(query) && !query.StartsWith("?"))
            {
                query = "?" + query;
            }

            if(String.IsNullOrEmpty(uri.Query))
            {
                return new Uri(uri.OriginalString + query);
            }
            else
            {
                string originalUri = uri.OriginalString;

                int queryDelimPos = originalUri.LastIndexOf('?');
                int compositeDelimPos = originalUri.LastIndexOf(')');

                if(queryDelimPos <= compositeDelimPos)
                {
                    // No Query or the Query is part of an inner Composite.
                    return new Uri(originalUri + query);
                }
                else
                {
                    // Outer Uri has a Query or not a Composite Uri with a Query
                    string strippedUri = originalUri.Substring(0, queryDelimPos);
                    return new Uri(strippedUri + query);
                }
            }
        }