Exemple #1
0
        internal Uri ToAbsoluteURI(string relativePath, IEnumerable <RequestParam> requestParameters)
        {
            if (ApiEndpoint.HasPath())
            {
                throw new InvalidOperationException("apiEndpoint should not contain a path");
            }
            if (ApiEndpoint.HasUserInfoOrQueryOrFragment())
            {
                throw new InvalidOperationException("apiEndpoint should not contain user info, query or fragment");
            }

            string absolutePath = relativePath.StartsWith("/", StringComparison.Ordinal)
                ? relativePath
                : "/" + relativePath;

            UriBuilder uriBuilder = new UriBuilder
            {
                Scheme = ApiEndpoint.Scheme,
                Host   = ApiEndpoint.Host,
                Port   = ApiEndpoint.Port,
                Path   = absolutePath,
            };

            if (requestParameters != null)
            {
                foreach (RequestParam nvp in requestParameters)
                {
                    uriBuilder.AddParameter(nvp.Name, nvp.Value);
                }
            }

            return(uriBuilder.Uri);
        }