Exemplo n.º 1
0
 /// <summary>Returns string representation of a header value from various types.</summary>
 /// <param name="value">The header value.</param>
 /// <returns>The string representation of the header value.</returns>
 public static string FromValue(dynamic value)
 {
     if (value.GetType().Equals(typeof(Oci.Common.Model.Range)))
     {
         return(value.ToString());
     }
     if (value.GetType().Equals(typeof(DateTime)))
     {
         return(HttpDateUtils.ToRfc3339Format(value));
     }
     if (value.GetType().Equals(typeof(BigInteger)))
     {
         return(value.ToString());
     }
     // Enum values cannot be directly casted to string because their values need to come from EnumMember attribute.
     if (value.GetType().IsEnum)
     {
         return(HttpUtils.GetEnumString(value));
     }
     return(Convert.ToString(value));
 }
Exemplo n.º 2
0
        /// <summary>Converts a string into header value based on the type provided.</summary>
        /// <param name="strValue">The string representation of the header value.</param>
        /// <param name="type">The expected type of the header value.</param>
        /// <returns>The converted header value.</returns>
        public static dynamic ToValue(string strValue, Type type)
        {
            if (type.Equals(typeof(Oci.Common.Model.Range)))
            {
                return(Oci.Common.Model.Range.ParseRange(strValue));
            }
            if (type.Equals(typeof(DateTime)))
            {
                return(HttpDateUtils.ToDateTime(strValue));
            }
            if (type.Equals(typeof(BigInteger)))
            {
                return(BigInteger.Parse(strValue));
            }
            var converter = TypeDescriptor.GetConverter(type);

            if (converter == null)
            {
                throw new ArgumentException($"Unable to get converter for type {type}");
            }
            var retVal = converter.ConvertFrom(strValue);

            return(retVal);
        }