/// <summary> /// Returns formatted body of the given request /// </summary> /// <param name="req"></param> /// <returns></returns> public virtual string GetFormattedBody(RemoteRequest req) { object body = ParamProvider.ExtractBodyParameter(req); if (null == body) { body = ParamProvider.ExtractBodyParameter(this); } if (null == body) { return(null); } string bodyStr = null; if (null != Formatter) { bodyStr = Formatter.Format(body); } else { bodyStr = string.Empty; } return(bodyStr); }
/// <summary> /// Returns headers list for the given request /// </summary> /// <param name="req"></param> /// <returns></returns> public virtual IEnumerable <Parameter> GetHeaders(RemoteRequest req) { IEnumerable <Parameter> headers = ParamProvider.ExtractHeaderParameters(req).Concat(ParamProvider.ExtractHeaderParameters(this)); return(headers.Distinct(new ParameterNameComparer())); }
/// <summary> /// Generates URL for the given request /// </summary> /// <param name="req"></param> /// <returns></returns> public virtual string GenerateRequestUrl(RemoteRequest req) { string url = UrlHelper.Concat(this.BaseAddress, req.EndpointAddress); url += "?"; var queryParameters = ParamProvider.ExtractQueryParameters(req).Concat(ParamProvider.ExtractQueryParameters(this)) .Distinct(new ParameterNameComparer()); url += QueryHelper.GenerateQueryString(queryParameters); return(url); }