Ejemplo n.º 1
0
 /// <summary>
 /// Returns a string that represents the specified <see cref="UniValue"/> instance.
 /// </summary>
 /// <param name="value">The value to converted.</param>
 private string ValueToString(UniValue value)
 {
     if (value.IsString)
     {
         return(String.Format("\"{0}\"", OAuthUtility.JavaScriptStringEncode(value.ToString())));
     }
     else if (value.IsBoolean)
     {
         return(String.Format("{0}", value.ToString().ToLower()));
     }
     else if (value.IsDateTime)
     {
         return(String.Format("\"{0}\"", ((DateTime)value).ToString("r")));
     }
     else if (value.IsNumeric)
     {
         return(String.Format("{0}", value.ToString().Replace(",", ".")));
     }
     else
     {
         return(!value.HasValue ? "null" : value.ToString());
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Returns a string that represents the specified item of the <see cref="UniValueCollection"/>.
        /// </summary>
        /// <param name="itm">The item to converted.</param>
        private string ItemToString(KeyValuePair <string, UniValue> itm)
        {
            if ((itm.Value.Parent != null && itm.Value.Parent.IsArraySubtype) && !itm.Value.HasAttributes)
            {
                return(this.ValueToString(itm.Value));
            }
            else if ((itm.Value.Parent != null && itm.Value.Parent.IsArraySubtype) && itm.Value.HasAttributes)
            {
                if (itm.Value.HasValue && ((itm.Value.IsString && !String.IsNullOrEmpty(itm.Value.ToString())) || !itm.Value.IsString))
                {
                    return(String.Format
                           (
                               "{{ \"value\": {0}, {1} }}",
                               this.ValueToString(itm.Value),
                               String.Join(", ", itm.Value.Attributes.AllKeys.Select(k => String.Format("\"@{0}\": \"{1}\"", k, OAuthUtility.JavaScriptStringEncode(itm.Value.Attributes[k]))).ToArray())
                           ));
                }
                else
                {
                    return(String.Format
                           (
                               "{{ {0} }}",
                               String.Join(", ", itm.Value.Attributes.AllKeys.Select(k => String.Format("\"@{0}\": \"{1}\"", k, OAuthUtility.JavaScriptStringEncode(itm.Value.Attributes[k]))).ToArray())
                           ));
                }
            }

            if (itm.Value.IsArraySubtype && !itm.Value.HasAttributes)
            {
                return(String.Format
                       (
                           "\"{0}\": {1}",
                           itm.Key,
                           this.ValueToString(itm.Value)
                       ));
            }

            if (itm.Value.HasAttributes)
            {
                if (itm.Value.HasValue && ((itm.Value.IsString && !String.IsNullOrEmpty(itm.Value.ToString())) || !itm.Value.IsString))
                {
                    return(String.Format
                           (
                               "\"{0}\": {{ value: {1}, {2} }}",
                               itm.Key,
                               this.ValueToString(itm.Value),
                               String.Join(", ", itm.Value.Attributes.AllKeys.Select(k => String.Format("\"@{0}\": \"{1}\"", k, OAuthUtility.JavaScriptStringEncode(itm.Value.Attributes[k]))).ToArray())
                           ));
                }
                else
                {
                    return(String.Format
                           (
                               "\"{0}\": {{ {1} }}",
                               itm.Key,
                               String.Join(", ", itm.Value.Attributes.AllKeys.Select(k => String.Format("\"@{0}\": \"{1}\"", k, OAuthUtility.JavaScriptStringEncode(itm.Value.Attributes[k]))).ToArray())
                           ));
                }
            }

            return(String.Format
                   (
                       "\"{0}\": {1}",
                       itm.Key,
                       this.ValueToString(itm.Value)
                   ));
        }