private IEnumerable <KeyValuePair <string, string> > Serialize <T>( string name, T value, RequestQueryParamSerializerInfo info) { if (value == null) { yield break; } foreach (var prop in GetPropertiesDeepRecursive(value, name)) { if (prop.Value == null) { yield return(new KeyValuePair <string, string>(prop.Key, string.Empty)); } else if (prop.Value is DateTime dt) { yield return(new KeyValuePair <string, string>(prop.Key, dt.ToString(info.Format))); } else { yield return(new KeyValuePair <string, string>(prop.Key, prop.Value.ToString())); } } }
/// <inheritdoc /> /// <summary> /// Serialize a query parameter whose value is scalar (not a collection), /// into a collection of <see cref="KeyValuePair{String, String}" />. /// </summary> /// <typeparam name="T">Type of the value to serialize.</typeparam> /// <param name="name">Name of the query parameter.</param> /// <param name="value">Value of the query parameter.</param> /// <param name="info">Extra info which may be useful to the serializer.</param> /// <returns>A collection of <see cref="KeyValuePair{String, String}" /> to use as query parameters.</returns> public override IEnumerable <KeyValuePair <string, string> > SerializeQueryParam <T>( string name, T value, RequestQueryParamSerializerInfo info) { if (value == null) { yield break; } var serializedValue = Serialize(value); yield return(new KeyValuePair <string, string>(name, serializedValue)); }
/// <inheritdoc /> /// <summary> /// Serialize a query parameter whose value is a collection, /// into a collection of <see cref="KeyValuePair{String, String}" />. /// </summary> /// <typeparam name="T">Type of the value to serialize.</typeparam> /// <param name="name">Name of the query parameter.</param> /// <param name="values">Values of the query parameter.</param> /// <param name="info">Extra info which may be useful to the serializer.</param> /// <returns>A collection of <see cref="KeyValuePair{String, String}" /> to use as query parameters.</returns> public override IEnumerable <KeyValuePair <string, string> > SerializeQueryCollectionParam <T>( string name, IEnumerable <T> values, RequestQueryParamSerializerInfo info) { if (values == null) { yield break; } foreach (var value in values) { if (value == null) { continue; } var serializedValue = Serialize(value); yield return(new KeyValuePair <string, string>(name, serializedValue)); } }
public override IEnumerable <KeyValuePair <string, string> > SerializeQueryCollectionParam <T>(string name, IEnumerable <T> values, RequestQueryParamSerializerInfo info) => Serialize(name, values, info);
private IEnumerable <KeyValuePair <string, string> > Serialize <T>(string name, T value, RequestQueryParamSerializerInfo info) { if (value == null) { yield break; } foreach (var prop in GetPropertiesDeepRecursive(value, name)) { if (prop.Value != null) { yield return(new KeyValuePair <string, string>(prop.Key, prop.Value)); } } }
public override IEnumerable <KeyValuePair <string, string> > SerializeQueryParam <T>(string name, T value, RequestQueryParamSerializerInfo info) { if (name == "include_unapproved" && typeof(T) == typeof(bool)) { yield return(new KeyValuePair <string, string>(name, value.Equals(true) ? "1" : "0")); } else { foreach (var kv in base.SerializeQueryParam(name, value, info)) { yield return(kv); } } }
public override IEnumerable <KeyValuePair <string, string> > SerializeQueryParam <T>(string name, T Value, RequestQueryParamSerializerInfo info) => Serialize(name, Value, info);
public override IEnumerable <KeyValuePair <string, string> > SerializeQueryCollectionParam <T>(string name, IEnumerable <T> values, RequestQueryParamSerializerInfo info) { if (values == null) { yield break; } foreach (var value in values) { if (value != null) { yield return(new KeyValuePair <string, string>(name, _serializer.WriteUtf16String(value))); } } }
public override IEnumerable <KeyValuePair <string, string> > SerializeQueryParam <T>(string name, T value, RequestQueryParamSerializerInfo info) { if (value == null) { yield break; } yield return(new KeyValuePair <string, string>(name, _serializer.WriteUtf16String(value))); }