コード例 #1
0
        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()));
                }
            }
        }
コード例 #2
0
        /// <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));
        }
コード例 #3
0
        /// <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));
            }
        }
コード例 #4
0
 public override IEnumerable <KeyValuePair <string, string> > SerializeQueryCollectionParam <T>(string name, IEnumerable <T> values, RequestQueryParamSerializerInfo info)
 => Serialize(name, values, info);
コード例 #5
0
ファイル: QueryParamSerializer.cs プロジェクト: nesfit/Coffee
        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));
                }
            }
        }
コード例 #6
0
 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);
         }
     }
 }
コード例 #7
0
 public override IEnumerable <KeyValuePair <string, string> > SerializeQueryParam <T>(string name, T Value, RequestQueryParamSerializerInfo info)
 => Serialize(name, Value, info);
コード例 #8
0
        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)));
                }
            }
        }
コード例 #9
0
        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)));
        }