/// <summary>
        /// Builds the URI.
        /// </summary>
        /// <param name="hostName">Name of the host.</param>
        /// <returns></returns>
        public virtual Uri BuildUri(string hostName)
        {
            if (hostName == null)
            {
                throw new ArgumentNullException("hostName");
            }

            if (!Validate())
            {
                throw new InvalidOperationException("You cannot build a web service URI with an invalid data query");
            }

            try
            {
                var uriSuffix = string.Format("{0}/-/item/v{1}/-/actions/{2}?", hostName.TrimEnd('/'), ApiVersion, ActionName);

                var uri = string.Format("{0}{1}", uriSuffix, QueryStringParameters.ToQueryString());

                return(new Uri(uri));
            }
            catch (Exception ex)
            {
                LogFactory.Error("Could not build a URI for the data query", ex);
            }

            return(null);
        }
        public System.Uri BuildUri(string hostName)
        {
            if (!Validate())
            {
                throw new InvalidOperationException("You cannot build a web service URI with an invalid data query");
            }

            try
            {
                var uriSuffix = string.Format("{0}/-/item/v{1}/?", hostName.TrimEnd('/'), ApiVersion);

                var uri = string.Format("{0}{1}", uriSuffix, QueryStringParameters.ToQueryString());

                return(new Uri(uri));
            }
            catch (Exception ex)
            {
                Log.WriteError("Could not build a URI for the data query", ex);
            }

            return(null);
        }
Esempio n. 3
0
        public HttpRequestMessage Build()
        {
            var uri       = BaseUrl.Append(UrlSegments);
            var getParams = QueryStringParameters.ToQueryString();

            if (!string.IsNullOrEmpty(getParams))
            {
                uri = uri.Append($"?{getParams}");
            }
            var req = new HttpRequestMessage(Method, uri);

            foreach ((var header, var value) in Headers)
            {
                req.Headers.Add(header, value);
            }
            var jsonBody = Body == null ? null : JsonSerializer.Serialize(Body, Degiro.JsonSerializerOptions);

            if (!string.IsNullOrEmpty(jsonBody) && !jsonBody.Equals("{}", StringComparison.OrdinalIgnoreCase))
            {
                req.Content = new StringContent(jsonBody, Encoding.UTF8, "application/json");
            }
            return(req);
        }