private static void PopulateQueryStringWithParameters(QueryStringValues queryStringValues, object parameters) { if (parameters == null) { return; } #if NET40 var properties = parameters.GetType().GetProperties(); #else var properties = parameters.GetType().GetTypeInfo().DeclaredProperties; #endif foreach (var property in properties) { var attribute = property.GetAttribute <QueryStringParameterAttribute>(); var name = attribute?.Key; if (string.IsNullOrWhiteSpace(name)) { continue; } var value = property.GetValue(parameters, null); if (value == null) { continue; } var valueText = value.ToString(); queryStringValues.AddIfValueNotNullOrEmpty(name, valueText); } }
/// <inheritDoc/> public virtual string GetOAuthAuthorizeUrl(string clientId, string redirectUri, string responseType = "code") { var queryStringValues = new QueryStringValues() .Add("response_type", responseType) .Add("client_id", clientId) .Add("redirect_uri", redirectUri); return("oauth/authorize" + queryStringValues.ToString(true)); }
/// <inheritDoc/> public string GetV1PersonShowUrl(int personId, PersonIdType idType) { var queryValues = new QueryStringValues(); if (idType == PersonIdType.External) { queryValues.Add("id_type", "external"); } return($"api/v1/people/{personId}" + queryValues.ToString(true)); }
private static QueryStringValues CreateQueryStringValues(short?pageSize = null, PagingTokens pagingTokens = null, object parameters = null) { var queryValues = new QueryStringValues() .Add("limit", pageSize?.ToString()) .AddPagingTokens(pagingTokens); PopulateQueryStringWithParameters(queryValues, parameters); return(queryValues); }
private static void PopulateQueryStringWithCustomValues(QueryStringValues queryStringValues, Dictionary <string, string> customValues) { if (customValues == null) { return; } if (customValues.Any(v => v.Key.Contains("[") || v.Key.Contains("]"))) { throw new InvalidOperationException( "The client does not support custom values with names containing the following chars: []"); } foreach (var customValue in customValues) { queryStringValues.AddIfValueNotNullOrEmpty($"custom_values[{customValue.Key}]", customValue.Value); } }