WritePropertyName() public method

public WritePropertyName ( string property_name ) : void
property_name string
return void
Example #1
0
    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
        var dataResult = value as DataResult;

            #region 序列化DataResult对象

            writer.WriteStartObject();
            // 写total属性
            writer.WritePropertyName("total");
            serializer.Serialize(writer, dataResult.Total);
            // 写pagecount属性
            writer.WritePropertyName("pagecount");
            serializer.Serialize(writer, dataResult.PageCount);
            // 写pageindex属性
            writer.WritePropertyName("pageindex");
            serializer.Serialize(writer, dataResult.PageIndex);

            // 写rows属性
            var converter = new DataTableConverter();
            writer.WritePropertyName("rows");
            converter.WriteJson(writer, dataResult.Data, serializer);
            writer.WriteEndObject();

            #endregion
    }
Example #2
0
    public static void SaveColour(JsonWriter writer, string propertyName, Color entry)
    {
        if (writer == null)
        {
            return;
        }

        writer.WritePropertyName(propertyName);

        writer.WriteStartObject();

        writer.WritePropertyName("r");
        writer.WriteValue(entry.r);

        writer.WritePropertyName("g");
        writer.WriteValue(entry.g);

        writer.WritePropertyName("b");
        writer.WriteValue(entry.b);

        writer.WritePropertyName("a");
        writer.WriteValue(entry.a);

        writer.WriteEndObject();
    }
    /// <summary>
    /// Writes the JSON representation of the object.
    /// </summary>
    /// <param name="writer">The <see cref="JsonWriter"/> to write to.</param>
    /// <param name="value">The value.</param>
    /// <param name="serializer">The calling serializer.</param>
    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
      IEntityKeyMember entityKeyMember = DynamicWrapper.CreateWrapper<IEntityKeyMember>(value);
      Type keyType = (entityKeyMember.Value != null) ? entityKeyMember.Value.GetType() : null;

      writer.WriteStartObject();
      writer.WritePropertyName("Key");
      writer.WriteValue(entityKeyMember.Key);
      writer.WritePropertyName("Type");
      writer.WriteValue((keyType != null) ? keyType.FullName : null);

      writer.WritePropertyName("Value");

      if (keyType != null)
      {
        string valueJson;
        if (JsonSerializerInternalWriter.TryConvertToString(entityKeyMember.Value, keyType, out valueJson))
          writer.WriteValue(valueJson);
        else
          writer.WriteValue(entityKeyMember.Value);
      }
      else
      {
        writer.WriteNull();
      }

      writer.WriteEndObject();
    }
        /// <summary>
        /// Writes the JSON representation of the object.
        /// </summary>
        /// <param name="writer">The <see cref="JsonWriter"/> to write to.</param>
        /// <param name="value">The value.</param>
        /// <param name="serializer">The calling serializer.</param>
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            DefaultContractResolver resolver = serializer.ContractResolver as DefaultContractResolver;

            IEntityKeyMember entityKeyMember = DynamicWrapper.CreateWrapper<IEntityKeyMember>(value);
            Type keyType = (entityKeyMember.Value != null) ? entityKeyMember.Value.GetType() : null;

            writer.WriteStartObject();
            writer.WritePropertyName((resolver != null) ? resolver.GetResolvedPropertyName(KeyPropertyName) : KeyPropertyName);
            writer.WriteValue(entityKeyMember.Key);
            writer.WritePropertyName((resolver != null) ? resolver.GetResolvedPropertyName(TypePropertyName) : TypePropertyName);
            writer.WriteValue((keyType != null) ? keyType.FullName : null);

            writer.WritePropertyName((resolver != null) ? resolver.GetResolvedPropertyName(ValuePropertyName) : ValuePropertyName);

            if (keyType != null)
            {
                string valueJson;
                if (JsonSerializerInternalWriter.TryConvertToString(entityKeyMember.Value, keyType, out valueJson))
                    writer.WriteValue(valueJson);
                else
                    writer.WriteValue(entityKeyMember.Value);
            }
            else
            {
                writer.WriteNull();
            }

            writer.WriteEndObject();
        }
        /// <summary>
        /// Writes the JSON representation of the object.
        /// </summary>
        /// <param name="writer">The <see cref="JsonWriter"/> to write to.</param>
        /// <param name="value">The value.</param>
        /// <param name="serializer">The calling serializer.</param>
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            EnsureReflectionObject(value.GetType());

            DefaultContractResolver resolver = serializer.ContractResolver as DefaultContractResolver;

            string keyName = (string)_reflectionObject.GetValue(value, KeyPropertyName);
            object keyValue = _reflectionObject.GetValue(value, ValuePropertyName);

            Type keyValueType = (keyValue != null) ? keyValue.GetType() : null;

            writer.WriteStartObject();
            writer.WritePropertyName((resolver != null) ? resolver.GetResolvedPropertyName(KeyPropertyName) : KeyPropertyName);
            writer.WriteValue(keyName);
            writer.WritePropertyName((resolver != null) ? resolver.GetResolvedPropertyName(TypePropertyName) : TypePropertyName);
            writer.WriteValue((keyValueType != null) ? keyValueType.FullName : null);

            writer.WritePropertyName((resolver != null) ? resolver.GetResolvedPropertyName(ValuePropertyName) : ValuePropertyName);

            if (keyValueType != null)
            {
                string valueJson;
                if (JsonSerializerInternalWriter.TryConvertToString(keyValue, keyValueType, out valueJson))
                    writer.WriteValue(valueJson);
                else
                    writer.WriteValue(keyValue);
            }
            else
            {
                writer.WriteNull();
            }

            writer.WriteEndObject();
        }
 private void WriteJson(JsonWriter writer, Regex regex)
 {
   writer.WriteStartObject();
   writer.WritePropertyName("Pattern");
   writer.WriteValue(regex.ToString());
   writer.WritePropertyName("Options");
   writer.WriteValue(regex.Options);
   writer.WriteEndObject();
 }
Example #7
0
	public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
	{
		var vec = (Vector2)value;
		writer.WriteStartObject();
		writer.WritePropertyName("x");
		writer.WriteValue(vec.x);
		writer.WritePropertyName("y");
		writer.WriteValue(vec.y);
		writer.WriteEndObject();
	}
    /// <summary>
    /// Writes the JSON representation of the object.
    /// </summary>
    /// <param name="writer">The <see cref="JsonWriter"/> to write to.</param>
    /// <param name="value">The value.</param>
    /// <param name="serializer">The calling serializer.</param>
    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
      Type t = value.GetType();
      PropertyInfo keyProperty = t.GetProperty("Key");
      PropertyInfo valueProperty = t.GetProperty("Value");

      writer.WriteStartObject();
      writer.WritePropertyName("Key");
      serializer.Serialize(writer, ReflectionUtils.GetMemberValue(keyProperty, value));
      writer.WritePropertyName("Value");
      serializer.Serialize(writer, ReflectionUtils.GetMemberValue(valueProperty, value));
      writer.WriteEndObject();
    }
        /// <summary>
        /// Writes the JSON representation of the object.
        /// </summary>
        /// <param name="writer">The <see cref="JsonWriter"/> to write to.</param>
        /// <param name="value">The value.</param>
        /// <param name="serializer">The calling serializer.</param>
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            ReflectionObject reflectionObject = ReflectionObjectPerType.Get(value.GetType());

            DefaultContractResolver resolver = serializer.ContractResolver as DefaultContractResolver;

            writer.WriteStartObject();
            writer.WritePropertyName((resolver != null) ? resolver.GetResolvedPropertyName(KeyName) : KeyName);
            serializer.Serialize(writer, reflectionObject.GetValue(value, KeyName), reflectionObject.GetType(KeyName));
            writer.WritePropertyName((resolver != null) ? resolver.GetResolvedPropertyName(ValueName) : ValueName);
            serializer.Serialize(writer, reflectionObject.GetValue(value, ValueName), reflectionObject.GetType(ValueName));
            writer.WriteEndObject();
        }
Example #10
0
 public override string ToString()
 {
     StringBuilder sb = new StringBuilder ();
     JsonWriter writer = new JsonWriter (sb);
     writer.WriteObjectStart ();
     writer.WritePropertyName ("option");
     writer.Write (option);
     writer.WritePropertyName ("subfield");
     writer.Write (subfield);
     writer.WritePropertyName ("tarId");
     writer.Write (tarId);
     writer.WriteObjectEnd ();
     return sb.ToString();
 }
Example #11
0
    public static void CreateClothes()
    {
        string[] materials = Directory.GetFiles("Assets/characters_joysoft", "*.mat", SearchOption.AllDirectories);
        StringBuilder sbuilders = new StringBuilder ();
        JsonWriter writer = new JsonWriter (sbuilders);
        writer.WriteObjectStart ();
        foreach (string material in materials)
        {
            //Assets/characters_joysoft/Per Texture Materials/female_hair_01_01.mat
            string[] parts=material.Replace(".mat","").Split('/');
            string unit=parts[parts.Length-1];

            writer.WritePropertyName (unit);

            int hashkey=0;
            foreach(string key in defaultClothes){
                if(unit.Contains(key)){
                    hashkey=1;
                    break;
                }
            }
            writer.Write (""+hashkey);

            sbuilders.Append(System.Environment.NewLine);

        }
        writer.WriteObjectEnd ();

        UpdateClothesContent(sbuilders);

        Debug.Log("**********UpdateClothesContent Finish***********");
    }
Example #12
0
    /// <summary>
    /// Writes the JSON representation of the object.
    /// </summary>
    /// <param name="writer">The <see cref="JsonWriter"/> to write to.</param>
    /// <param name="value">The value.</param>
    /// <param name="serializer">The calling serializer.</param>
    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
      Type t = value.GetType();
      PropertyInfo keyProperty = t.GetProperty(KeyName);
      PropertyInfo valueProperty = t.GetProperty(ValueName);

      DefaultContractResolver resolver = serializer.ContractResolver as DefaultContractResolver;

      writer.WriteStartObject();

      writer.WritePropertyName((resolver != null) ? resolver.GetResolvedPropertyName(KeyName) : KeyName);
      serializer.Serialize(writer, ReflectionUtils.GetMemberValue(keyProperty, value));
      writer.WritePropertyName((resolver != null) ? resolver.GetResolvedPropertyName(ValueName) : ValueName);
      serializer.Serialize(writer, ReflectionUtils.GetMemberValue(valueProperty, value));
      writer.WriteEndObject();
    }
    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
        if (value == null)
        {
            writer.WriteValue("null");
            return;
        }

        var processResult = (ProcessResult)value;
        writer.WriteStartObject();
        writer.WritePropertyName("missingSnippets");
        serializer.Serialize(writer, processResult.MissingSnippets);
        writer.WritePropertyName("usedSnippets");
        serializer.Serialize(writer, processResult.UsedSnippets);
        writer.WriteEndObject();
    }
Example #14
0
 public void WriteToService()
 {
     System.Text.StringBuilder m_write = new System.Text.StringBuilder();
     JsonWriter m_writer = new JsonWriter(m_write);
     m_writer.WriteObjectStart();
     m_writer.WritePropertyName("ButtonID");
 }
        /// <summary>
        /// Writes the JSON representation of the object.
        /// </summary>
        /// <param name="writer">The <see cref="JsonWriter"/> to write to.</param>
        /// <param name="value">The value.</param>
        /// <param name="serializer">The calling serializer.</param>
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            DataTable table = (DataTable)value;
            DefaultContractResolver resolver = serializer.ContractResolver as DefaultContractResolver;

            writer.WriteStartArray();

            foreach (DataRow row in table.Rows)
            {
                writer.WriteStartObject();
                foreach (DataColumn column in row.Table.Columns)
                {
                    object columnValue = row[column];

                    if (serializer.NullValueHandling == NullValueHandling.Ignore && (columnValue == null || columnValue == DBNull.Value))
                    {
                        continue;
                    }

                    writer.WritePropertyName((resolver != null) ? resolver.GetResolvedPropertyName(column.ColumnName) : column.ColumnName);
                    serializer.Serialize(writer, columnValue);
                }
                writer.WriteEndObject();
            }

            writer.WriteEndArray();
        }
    void Deactivate()
    {
        state = 0;
        renderer.material.color = colours[0];

        StringBuilder sb = new StringBuilder();
        JsonWriter writer = new JsonWriter(sb);
        writer.WriteObjectStart();
        writer.WritePropertyName("id");
        writer.Write(id);
        writer.WritePropertyName("state");
        writer.Write(0);
        writer.WriteObjectEnd();

        monome.SendMessage("SendToSaul", sb.ToString());
    }
    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
        if (value == null)
        {
            writer.WriteValue("null");
            return;
        }

        var readSnippets = (ReadSnippets)value;
        writer.WriteStartObject();
        writer.WritePropertyName("snippets");
        serializer.Serialize(writer, readSnippets.Snippets);
        writer.WritePropertyName("errors");
        serializer.Serialize(writer, readSnippets.Errors);
        writer.WriteEndObject();
    }
Example #18
0
 private void WriteJsonValue(JsonWriter writer, IJsonValue value)
 {
   switch (value.ValueType)
   {
     case JsonValueType.Array:
       {
         JsonArray a = value.GetArray();
         writer.WriteStartArray();
         for (int i = 0; i < a.Count; i++)
         {
           WriteJsonValue(writer, a[i]);
         }
         writer.WriteEndArray();
       }
       break;
     case JsonValueType.Boolean:
       {
         writer.WriteValue(value.GetBoolean());
       }
       break;
     case JsonValueType.Null:
       {
         writer.WriteNull();
       }
       break;
     case JsonValueType.Number:
       {
         // JsonValue doesn't support integers
         // serialize whole numbers without a decimal point
         double d = value.GetNumber();
         bool isInteger = (d % 1 == 0);
         if (isInteger && d <= long.MaxValue && d >= long.MinValue)
           writer.WriteValue(Convert.ToInt64(d));
         else
           writer.WriteValue(d);
       }
       break;
     case JsonValueType.Object:
       {
         JsonObject o = value.GetObject();
         writer.WriteStartObject();
         foreach (KeyValuePair<string, IJsonValue> v in o)
         {
           writer.WritePropertyName(v.Key);
           WriteJsonValue(writer, v.Value);
         }
         writer.WriteEndObject();
       }
       break;
     case JsonValueType.String:
       {
         writer.WriteValue(value.GetString());
       }
       break;
     default:
       throw new ArgumentOutOfRangeException("ValueType");
   }
 }
    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
        if (value == null)
        {
            writer.WriteValue("null");
            return;
        }

        var cachedSnippets = (CachedSnippets)value;
        writer.WriteStartObject();
        writer.WritePropertyName("ticks");
        writer.WriteValue(cachedSnippets.Ticks);
        writer.WritePropertyName("snippetGroups");
        serializer.Serialize(writer, cachedSnippets.SnippetGroups);
        writer.WritePropertyName("errors");
        serializer.Serialize(writer, cachedSnippets.ReadingErrors);
        writer.WriteEndObject();
    }
    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
        if (value == null)
        {
            writer.WriteValue("null");
            return;
        }

        var snippetGroup = (SnippetGroup)value;
        writer.WriteStartObject();
        writer.WritePropertyName("key");
        writer.WriteValue(snippetGroup.Key);
        writer.WritePropertyName("language");
        writer.WriteValue(snippetGroup.Language);
        writer.WritePropertyName("versions");
        serializer.Serialize(writer, snippetGroup.Versions);
        writer.WriteEndObject();
    }
        /// <summary>
        /// Writes the JSON representation of the object.
        /// </summary>
        /// <param name="writer">The <see cref="JsonWriter"/> to write to.</param>
        /// <param name="value">The value.</param>
        /// <param name="serializer">The calling serializer.</param>
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            DefaultContractResolver resolver = serializer.ContractResolver as DefaultContractResolver;

            Type t = value.GetType();

            object result = FSharpUtils.GetUnionFields(null, value, t, null);
            object info = FSharpUtils.GetUnionCaseInfo(result);
            object fields = FSharpUtils.GetUnionCaseFields(result);
            object caseName = FSharpUtils.GetUnionCaseInfoName(info);

            writer.WriteStartObject();
            writer.WritePropertyName((resolver != null) ? resolver.GetResolvedPropertyName(CasePropertyName) : CasePropertyName);
            writer.WriteValue((string)caseName);
            writer.WritePropertyName((resolver != null) ? resolver.GetResolvedPropertyName(FieldsPropertyName) : FieldsPropertyName);
            serializer.Serialize(writer, fields);
            writer.WriteEndObject();
        }
    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
        if (value == null)
        {
            writer.WriteValue("null");
            return;
        }

        var versionGroup = (VersionGroup)value;
        writer.WriteStartObject();
        writer.WritePropertyName("version");
        writer.WriteValue(versionGroup.Version.PrettyPrint());
        writer.WritePropertyName("value");
        writer.WriteValue(versionGroup.Value);
        writer.WritePropertyName("sources");
        serializer.Serialize(writer, versionGroup.Sources);
        writer.WriteEndObject();
    }
        /// <summary>
        /// Writes the JSON representation of the object.
        /// </summary>
        /// <param name="writer">The <see cref="JsonWriter"/> to write to.</param>
        /// <param name="value">The value.</param>
        /// <param name="serializer">The calling serializer.</param>
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            ReflectionObject reflectionObject = ReflectionObjectPerType.Get(value.GetType());

            DefaultContractResolver resolver = serializer.ContractResolver as DefaultContractResolver;

            writer.WriteStartObject();
            writer.WritePropertyName((resolver != null) ? resolver.GetResolvedPropertyName(Name) : Name);
            serializer.Serialize(writer, reflectionObject.GetValue(value, Name), reflectionObject.GetType(Name));
            writer.WritePropertyName((resolver != null) ? resolver.GetResolvedPropertyName(isStaticName) : isStaticName);
            serializer.Serialize(writer, reflectionObject.GetValue(value, isStaticName), reflectionObject.GetType(isStaticName));
            writer.WritePropertyName((resolver != null) ? resolver.GetResolvedPropertyName(layerName) : layerName);
            serializer.Serialize(writer, reflectionObject.GetValue(value, layerName), reflectionObject.GetType(layerName));
            writer.WritePropertyName((resolver != null) ? resolver.GetResolvedPropertyName(tagName) : tagName);
            serializer.Serialize(writer, reflectionObject.GetValue(value, tagName), reflectionObject.GetType(tagName));
            writer.WritePropertyName((resolver != null) ? resolver.GetResolvedPropertyName(flagsName) : flagsName);
            serializer.Serialize(writer, reflectionObject.GetValue(value, flagsName), reflectionObject.GetType(flagsName));
            writer.WriteEndObject();
        }
 // Token: 0x0600019E RID: 414
 // RVA: 0x0002BC3C File Offset: 0x00029E3C
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
 {
     ReflectionObject reflectionObject = KeyValuePairConverter.ReflectionObjectPerType.Get(value.GetType());
     DefaultContractResolver defaultContractResolver = serializer.ContractResolver as DefaultContractResolver;
     writer.WriteStartObject();
     writer.WritePropertyName((defaultContractResolver != null) ? defaultContractResolver.GetResolvedPropertyName("Key") : "Key");
     serializer.Serialize(writer, reflectionObject.GetValue(value, "Key"), reflectionObject.GetType("Key"));
     writer.WritePropertyName((defaultContractResolver != null) ? defaultContractResolver.GetResolvedPropertyName("Value") : "Value");
     serializer.Serialize(writer, reflectionObject.GetValue(value, "Value"), reflectionObject.GetType("Value"));
     writer.WriteEndObject();
 }
Example #25
0
    public static void SaveFloat(JsonWriter writer, string propertyName, float entry)
    {
        if (writer == null)
        {
            return;
        }

        writer.WritePropertyName(propertyName);

        writer.WriteValue(entry);
    }
Example #26
0
	/// <summary>
	/// 数据存Json
	/// </summary>
	public void SaveData()
	{
		StringBuilder sb = new StringBuilder();
		JsonWriter jw = new JsonWriter(sb);
		jw.WriteObjectStart();
		//写入玩家名称
		jw.WritePropertyName("Name");
		jw.Write(GlobalManager.userName);
		//写入开始索引
		jw.WritePropertyName("StartIndex");
		jw.Write(GlobalManager.startIndex);
		//写入最高分
		jw.WritePropertyName("MaxScore");
		jw.Write(GlobalManager.maxScore);
		//写入已经完成的单词总数
		jw.WritePropertyName("WordAmount");
		jw.Write(GlobalManager.wordAmount);
		//...

		jw.WriteObjectEnd();
		SaveJsonString(sb.ToString());
	}
 private void WriteJsonValue(JsonWriter writer, IJsonValue value)
 {
   switch (value.ValueType)
   {
     case JsonValueType.Array:
       {
         JsonArray a = value.GetArray();
         writer.WriteStartArray();
         for (int i = 0; i < a.Count; i++)
         {
           WriteJsonValue(writer, a[i]);
         }
         writer.WriteEndArray();
       }
       break;
     case JsonValueType.Boolean:
       {
         writer.WriteValue(value.GetBoolean());
       }
       break;
     case JsonValueType.Null:
       {
         writer.WriteNull();
       }
       break;
     case JsonValueType.Number:
       {
         writer.WriteValue(value.GetNumber());
       }
       break;
     case JsonValueType.Object:
       {
         JsonObject o = value.GetObject();
         writer.WriteStartObject();
         foreach (KeyValuePair<string, IJsonValue> v in o)
         {
           writer.WritePropertyName(v.Key);
           WriteJsonValue(writer, v.Value);
         }
         writer.WriteEndObject();
       }
       break;
     case JsonValueType.String:
       {
         writer.WriteValue(value.GetString());
       }
       break;
     default:
       throw new ArgumentOutOfRangeException("ValueType");
   }
 }
		private void SerializePrimitive(JsonWriter writer, object value, JsonPrimitiveContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerProperty) {
			if (contract.UnderlyingType == typeof(byte[])) {
				bool includeTypeDetails = ShouldWriteType(TypeNameHandling.Objects, contract, member, containerContract, containerProperty);
				if (includeTypeDetails) {
					writer.WriteStartObject();
					WriteTypeProperty(writer, contract.CreatedType);
					writer.WritePropertyName(JsonTypeReflector.ValuePropertyName);
					writer.WriteValue(value);
					writer.WriteEndObject();
					return;
				}
			}

			writer.WriteValue(value);
		}
Example #29
0
    /// <summary>
    /// Writes the JSON representation of the object.
    /// </summary>
    /// <param name="writer">The <see cref="JsonWriter"/> to write to.</param>
    /// <param name="value">The value.</param>
    /// <param name="serializer">The calling serializer.</param>
    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
      DataSet dataSet = (DataSet)value;

      DataTableConverter converter = new DataTableConverter();

      writer.WriteStartObject();

      foreach (DataTable table in dataSet.Tables)
      {
        writer.WritePropertyName(table.TableName);
        
        converter.WriteJson(writer, table, serializer);
      }

      writer.WriteEndObject();
    }
    /// <summary>
    /// Writes the JSON representation of the object.
    /// </summary>
    /// <param name="writer">The <see cref="JsonWriter"/> to write to.</param>
    /// <param name="value">The value.</param>
    /// <param name="serializer">The calling serializer.</param>
    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
      DataSet dataSet = (DataSet)value;
      DefaultContractResolver resolver = serializer.ContractResolver as DefaultContractResolver;

      DataTableConverter converter = new DataTableConverter();

      writer.WriteStartObject();

      foreach (DataTable table in dataSet.Tables)
      {
        writer.WritePropertyName((resolver != null) ? resolver.ResolvePropertyName(table.TableName) : table.TableName);
        
        converter.WriteJson(writer, table, serializer);
      }

      writer.WriteEndObject();
    }
Example #31
0
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            var  ws           = (WorkspaceModel)value;
            bool isCustomNode = value is CustomNodeWorkspaceModel;

            writer.WriteStartObject();
            writer.WritePropertyName("Uuid");
            if (isCustomNode)
            {
                writer.WriteValue((ws as CustomNodeWorkspaceModel).CustomNodeId.ToString());
            }
            else
            {
                writer.WriteValue(ws.Guid.ToString());
            }
            // TODO: revisit IsCustomNode during DYN/DYF convergence
            writer.WritePropertyName("IsCustomNode");
            writer.WriteValue(value is CustomNodeWorkspaceModel ? true : false);
            if (isCustomNode)
            {
                writer.WritePropertyName("Category");
                writer.WriteValue(((CustomNodeWorkspaceModel)value).Category);
            }

            // Description
            writer.WritePropertyName("Description");
            if (isCustomNode)
            {
                writer.WriteValue(((CustomNodeWorkspaceModel)ws).Description);
            }
            else
            {
                writer.WriteValue(ws.Description);
            }
            writer.WritePropertyName("Name");
            writer.WriteValue(ws.Name);

            //element resolver
            writer.WritePropertyName("ElementResolver");
            serializer.Serialize(writer, ws.ElementResolver);

            //inputs
            writer.WritePropertyName("Inputs");
            //find nodes which are inputs and get their inputData if its not null.
            var inputNodeDatas = ws.Nodes.Where((node) => node.IsSetAsInput == true && node.InputData != null)
                                 .Select(inputNode => inputNode.InputData).ToList();

            serializer.Serialize(writer, inputNodeDatas);

            //nodes
            writer.WritePropertyName("Nodes");
            serializer.Serialize(writer, ws.Nodes);

            //connectors
            writer.WritePropertyName("Connectors");
            serializer.Serialize(writer, ws.Connectors);

            // Dependencies
            writer.WritePropertyName("Dependencies");
            writer.WriteStartArray();
            var functions = ws.Nodes.Where(n => n is Function);

            if (functions.Any())
            {
                var deps = functions.Cast <Function>().Select(f => f.Definition.FunctionId).Distinct();
                foreach (var d in deps)
                {
                    writer.WriteValue(d);
                }
            }
            writer.WriteEndArray();

            if (engine != null)
            {
                // Bindings
                writer.WritePropertyName(Configurations.BindingsTag);
                writer.WriteStartArray();

                // Selecting all nodes that are either a DSFunction,
                // a DSVarArgFunction or a CodeBlockNodeModel into a list.
                var nodeGuids =
                    ws.Nodes.Where(
                        n => n is DSFunction || n is DSVarArgFunction || n is CodeBlockNodeModel || n is Function)
                    .Select(n => n.GUID);

                var nodeTraceDataList = engine.LiveRunnerRuntimeCore.RuntimeData.GetTraceDataForNodes(nodeGuids,
                                                                                                      this.engine.LiveRunnerRuntimeCore.DSExecutable);

                // serialize given node-data-list pairs into an Json.
                if (nodeTraceDataList.Any())
                {
                    foreach (var pair in nodeTraceDataList)
                    {
                        writer.WriteStartObject();
                        writer.WritePropertyName(Configurations.NodeIdAttribName);
                        // Set the node ID attribute for this element.
                        var nodeGuid = pair.Key.ToString();
                        writer.WriteValue(nodeGuid);
                        writer.WritePropertyName(Configurations.BingdingTag);
                        // D4R binding
                        writer.WriteStartObject();
                        foreach (var data in pair.Value)
                        {
                            writer.WritePropertyName(data.ID);
                            writer.WriteValue(data.Data);
                        }
                        writer.WriteEndObject();
                        writer.WriteEndObject();
                    }
                }
                writer.WriteEndArray();
                writer.WriteEndObject();
            }
        }
            private void WriteCompletionItem(JsonWriter writer, CompletionItem completionItem, JsonSerializer serializer)
            {
                writer.WriteStartObject();

                var label = completionItem.Label;

                if (label != null)
                {
                    writer.WritePropertyName("label");
                    writer.WriteValue(label);
                }

                writer.WritePropertyName("kind");
                writer.WriteValue(completionItem.Kind);

                if (completionItem.Detail != null)
                {
                    writer.WritePropertyName("detail");
                    writer.WriteValue(completionItem.Detail);
                }

                if (completionItem.Documentation != null)
                {
                    writer.WritePropertyName("documentation");
                    serializer.Serialize(writer, completionItem.Documentation);
                }

                // Only render preselect if it's "true"
                if (completionItem.Preselect)
                {
                    writer.WritePropertyName("preselect");
                    writer.WriteValue(completionItem.Preselect);
                }

                if (completionItem.SortText != null && !string.Equals(completionItem.SortText, label, StringComparison.Ordinal))
                {
                    writer.WritePropertyName("sortText");
                    writer.WriteValue(completionItem.SortText);
                }

                if (completionItem.FilterText != null && !string.Equals(completionItem.FilterText, label, StringComparison.Ordinal))
                {
                    writer.WritePropertyName("filterText");
                    writer.WriteValue(completionItem.FilterText);
                }

                if (completionItem.InsertText != null && !string.Equals(completionItem.InsertText, label, StringComparison.Ordinal))
                {
                    writer.WritePropertyName("insertText");
                    writer.WriteValue(completionItem.InsertText);
                }

                if (completionItem.InsertTextFormat != default && completionItem.InsertTextFormat != InsertTextFormat.PlainText)
                {
                    writer.WritePropertyName("insertTextFormat");
                    writer.WriteValue(completionItem.InsertTextFormat);
                }

                if (completionItem.TextEdit != null)
                {
                    writer.WritePropertyName("textEdit");
                    serializer.Serialize(writer, completionItem.TextEdit);
                }

                if (completionItem.AdditionalTextEdits != null && completionItem.AdditionalTextEdits.Any())
                {
                    writer.WritePropertyName("additionalTextEdits");
                    serializer.Serialize(writer, completionItem.AdditionalTextEdits);
                }

                if (completionItem.CommitCharacters != null && completionItem.CommitCharacters.Any())
                {
                    writer.WritePropertyName("commitCharacters");

                    if (!CommitCharactersRawJson.TryGetValue(completionItem.CommitCharacters, out var jsonString))
                    {
                        jsonString = JsonConvert.SerializeObject(completionItem.CommitCharacters);
                        CommitCharactersRawJson.TryAdd(completionItem.CommitCharacters, jsonString);
                    }

                    writer.WriteRawValue(jsonString);
                }

                if (completionItem.Command != null)
                {
                    writer.WritePropertyName("command");
                    serializer.Serialize(writer, completionItem.Command);
                }

                if (completionItem.Data != null)
                {
                    writer.WritePropertyName("data");
                    serializer.Serialize(writer, completionItem.Data);
                }

                writer.WriteEndObject();
            }
Example #33
0
 protected override void WriteJsonValue(JsonWriter writer, JsonContract contract, string property = null)
 {
     writer.WritePropertyName(key);
     writer.WriteValue(value);
 }
Example #34
0
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            if (value == null)
            {
                writer.WriteNull();
                return;
            }

            if (value is IGeoShape shape)
            {
                if (value is GeoShapeBase shapeBase && shapeBase.Format == GeoShapeFormat.WellKnownText)
                {
                    writer.WriteValue(GeoWKTWriter.Write(shapeBase));
                    return;
                }

                writer.WriteStartObject();
                writer.WritePropertyName("type");
                writer.WriteValue(shape.Type);

                switch (shape)
                {
                case IPointGeoShape point:
                    writer.WritePropertyName("coordinates");
                    serializer.Serialize(writer, point.Coordinates);
                    break;

                case IMultiPointGeoShape multiPoint:
                    writer.WritePropertyName("coordinates");
                    serializer.Serialize(writer, multiPoint.Coordinates);
                    break;

                case ILineStringGeoShape lineString:
                    writer.WritePropertyName("coordinates");
                    serializer.Serialize(writer, lineString.Coordinates);
                    break;

                case IMultiLineStringGeoShape multiLineString:
                    writer.WritePropertyName("coordinates");
                    serializer.Serialize(writer, multiLineString.Coordinates);
                    break;

                case IPolygonGeoShape polygon:
                    writer.WritePropertyName("coordinates");
                    serializer.Serialize(writer, polygon.Coordinates);
                    break;

                case IMultiPolygonGeoShape multiPolygon:
                    writer.WritePropertyName("coordinates");
                    serializer.Serialize(writer, multiPolygon.Coordinates);
                    break;

                case IEnvelopeGeoShape envelope:
                    writer.WritePropertyName("coordinates");
                    serializer.Serialize(writer, envelope.Coordinates);
                    break;

                case ICircleGeoShape circle:
                    writer.WritePropertyName("coordinates");
                    serializer.Serialize(writer, circle.Coordinates);
                    writer.WritePropertyName("radius");
                    writer.WriteValue(circle.Radius);
                    break;

                case IGeometryCollection collection:
                    writer.WritePropertyName("geometries");
                    serializer.Serialize(writer, collection.Geometries);
                    break;
                }

                writer.WriteEndObject();
            }
            else
            {
                throw new NotSupportedException($"{value.GetType()} is not a supported {nameof(IGeoShape)}");
            }
        }
Example #35
0
            /// <summary>
            /// Writes the media entity.
            /// </summary>
            /// <param name="w">The w.</param>
            /// <param name="e">The e.</param>
            private static void WriteMediaEntity(JsonWriter w, MediaEntity e)
            {
                w.WritePropertyName("type");
                switch (e.MediaType)
                {
                case MediaEntity.MediaTypes.Unknown:
                    w.WriteNull();
                    break;

                case MediaEntity.MediaTypes.Photo:
                    w.WriteValue("photo");
                    break;

                default:
                    break;
                }

                w.WritePropertyName("sizes");
                w.WriteStartObject();
                {
                    foreach (var item in e.Sizes)
                    {
                        w.WritePropertyName(item.Size.ToString().ToLower());
                        w.WriteStartObject();
                        {
                            w.WritePropertyName("h");
                            w.WriteValue(item.Height);

                            w.WritePropertyName("w");
                            w.WriteValue(item.Width);

                            w.WritePropertyName("resize");
                            w.WriteValue(item.Resize == MediaEntity.MediaSize.MediaSizeResizes.Fit ? "fit" : "crop");
                            w.WriteEndObject();
                        }
                    }

                    w.WriteEndObject();
                }

                w.WritePropertyName("id");
                w.WriteValue(e.Id);

                w.WritePropertyName("id_str");
                w.WriteValue(e.IdString);

                w.WritePropertyName("media_url");
                w.WriteValue(e.MediaUrl);

                w.WritePropertyName("media_url_https");
                w.WriteValue(e.MediaUrlSecure);

                w.WritePropertyName("url");
                w.WriteValue(e.Url);

                w.WritePropertyName("display_url");
                w.WriteValue(e.DisplayUrl);

                w.WritePropertyName("expanded_url");
                w.WriteValue(e.ExpandedUrl);
            }
Example #36
0
        public IRequest Marshall(CreatePresetRequest publicRequest)
        {
            IRequest request = new DefaultRequest(publicRequest, "Amazon.ElasticTranscoder");

            request.Headers["Content-Type"] = "application/x-amz-json-";
            request.HttpMethod = "POST";

            string uriResourcePath = "/2012-09-25/presets";

            request.ResourcePath = uriResourcePath;
            using (StringWriter stringWriter = new StringWriter(CultureInfo.InvariantCulture))
            {
                JsonWriter writer = new JsonWriter(stringWriter);
                writer.WriteObjectStart();
                if (publicRequest.IsSetAudio())
                {
                    writer.WritePropertyName("Audio");
                    writer.WriteObjectStart();
                    if (publicRequest.Audio.IsSetBitRate())
                    {
                        writer.WritePropertyName("BitRate");
                        writer.Write(publicRequest.Audio.BitRate);
                    }

                    if (publicRequest.Audio.IsSetChannels())
                    {
                        writer.WritePropertyName("Channels");
                        writer.Write(publicRequest.Audio.Channels);
                    }

                    if (publicRequest.Audio.IsSetCodec())
                    {
                        writer.WritePropertyName("Codec");
                        writer.Write(publicRequest.Audio.Codec);
                    }

                    if (publicRequest.Audio.IsSetCodecOptions())
                    {
                        writer.WritePropertyName("CodecOptions");
                        writer.WriteObjectStart();
                        if (publicRequest.Audio.CodecOptions.IsSetProfile())
                        {
                            writer.WritePropertyName("Profile");
                            writer.Write(publicRequest.Audio.CodecOptions.Profile);
                        }

                        writer.WriteObjectEnd();
                    }

                    if (publicRequest.Audio.IsSetSampleRate())
                    {
                        writer.WritePropertyName("SampleRate");
                        writer.Write(publicRequest.Audio.SampleRate);
                    }

                    writer.WriteObjectEnd();
                }

                if (publicRequest.IsSetContainer())
                {
                    writer.WritePropertyName("Container");
                    writer.Write(publicRequest.Container);
                }

                if (publicRequest.IsSetDescription())
                {
                    writer.WritePropertyName("Description");
                    writer.Write(publicRequest.Description);
                }

                if (publicRequest.IsSetName())
                {
                    writer.WritePropertyName("Name");
                    writer.Write(publicRequest.Name);
                }

                if (publicRequest.IsSetThumbnails())
                {
                    writer.WritePropertyName("Thumbnails");
                    writer.WriteObjectStart();
                    if (publicRequest.Thumbnails.IsSetAspectRatio())
                    {
                        writer.WritePropertyName("AspectRatio");
                        writer.Write(publicRequest.Thumbnails.AspectRatio);
                    }

                    if (publicRequest.Thumbnails.IsSetFormat())
                    {
                        writer.WritePropertyName("Format");
                        writer.Write(publicRequest.Thumbnails.Format);
                    }

                    if (publicRequest.Thumbnails.IsSetInterval())
                    {
                        writer.WritePropertyName("Interval");
                        writer.Write(publicRequest.Thumbnails.Interval);
                    }

                    if (publicRequest.Thumbnails.IsSetMaxHeight())
                    {
                        writer.WritePropertyName("MaxHeight");
                        writer.Write(publicRequest.Thumbnails.MaxHeight);
                    }

                    if (publicRequest.Thumbnails.IsSetMaxWidth())
                    {
                        writer.WritePropertyName("MaxWidth");
                        writer.Write(publicRequest.Thumbnails.MaxWidth);
                    }

                    if (publicRequest.Thumbnails.IsSetPaddingPolicy())
                    {
                        writer.WritePropertyName("PaddingPolicy");
                        writer.Write(publicRequest.Thumbnails.PaddingPolicy);
                    }

                    if (publicRequest.Thumbnails.IsSetResolution())
                    {
                        writer.WritePropertyName("Resolution");
                        writer.Write(publicRequest.Thumbnails.Resolution);
                    }

                    if (publicRequest.Thumbnails.IsSetSizingPolicy())
                    {
                        writer.WritePropertyName("SizingPolicy");
                        writer.Write(publicRequest.Thumbnails.SizingPolicy);
                    }

                    writer.WriteObjectEnd();
                }

                if (publicRequest.IsSetVideo())
                {
                    writer.WritePropertyName("Video");
                    writer.WriteObjectStart();
                    if (publicRequest.Video.IsSetAspectRatio())
                    {
                        writer.WritePropertyName("AspectRatio");
                        writer.Write(publicRequest.Video.AspectRatio);
                    }

                    if (publicRequest.Video.IsSetBitRate())
                    {
                        writer.WritePropertyName("BitRate");
                        writer.Write(publicRequest.Video.BitRate);
                    }

                    if (publicRequest.Video.IsSetCodec())
                    {
                        writer.WritePropertyName("Codec");
                        writer.Write(publicRequest.Video.Codec);
                    }

                    if (publicRequest.Video.IsSetCodecOptions())
                    {
                        writer.WritePropertyName("CodecOptions");
                        writer.WriteObjectStart();
                        foreach (var publicRequestVideoCodecOptionsKvp in publicRequest.Video.CodecOptions)
                        {
                            writer.WritePropertyName(publicRequestVideoCodecOptionsKvp.Key);
                            var publicRequestVideoCodecOptionsValue = publicRequestVideoCodecOptionsKvp.Value;

                            writer.Write(publicRequestVideoCodecOptionsValue);
                        }
                        writer.WriteObjectEnd();
                    }

                    if (publicRequest.Video.IsSetDisplayAspectRatio())
                    {
                        writer.WritePropertyName("DisplayAspectRatio");
                        writer.Write(publicRequest.Video.DisplayAspectRatio);
                    }

                    if (publicRequest.Video.IsSetFixedGOP())
                    {
                        writer.WritePropertyName("FixedGOP");
                        writer.Write(publicRequest.Video.FixedGOP);
                    }

                    if (publicRequest.Video.IsSetFrameRate())
                    {
                        writer.WritePropertyName("FrameRate");
                        writer.Write(publicRequest.Video.FrameRate);
                    }

                    if (publicRequest.Video.IsSetKeyframesMaxDist())
                    {
                        writer.WritePropertyName("KeyframesMaxDist");
                        writer.Write(publicRequest.Video.KeyframesMaxDist);
                    }

                    if (publicRequest.Video.IsSetMaxFrameRate())
                    {
                        writer.WritePropertyName("MaxFrameRate");
                        writer.Write(publicRequest.Video.MaxFrameRate);
                    }

                    if (publicRequest.Video.IsSetMaxHeight())
                    {
                        writer.WritePropertyName("MaxHeight");
                        writer.Write(publicRequest.Video.MaxHeight);
                    }

                    if (publicRequest.Video.IsSetMaxWidth())
                    {
                        writer.WritePropertyName("MaxWidth");
                        writer.Write(publicRequest.Video.MaxWidth);
                    }

                    if (publicRequest.Video.IsSetPaddingPolicy())
                    {
                        writer.WritePropertyName("PaddingPolicy");
                        writer.Write(publicRequest.Video.PaddingPolicy);
                    }

                    if (publicRequest.Video.IsSetResolution())
                    {
                        writer.WritePropertyName("Resolution");
                        writer.Write(publicRequest.Video.Resolution);
                    }

                    if (publicRequest.Video.IsSetSizingPolicy())
                    {
                        writer.WritePropertyName("SizingPolicy");
                        writer.Write(publicRequest.Video.SizingPolicy);
                    }

                    if (publicRequest.Video.IsSetWatermarks())
                    {
                        writer.WritePropertyName("Watermarks");
                        writer.WriteArrayStart();
                        foreach (var publicRequestVideoWatermarksListValue in publicRequest.Video.Watermarks)
                        {
                            writer.WriteObjectStart();
                            if (publicRequestVideoWatermarksListValue.IsSetHorizontalAlign())
                            {
                                writer.WritePropertyName("HorizontalAlign");
                                writer.Write(publicRequestVideoWatermarksListValue.HorizontalAlign);
                            }

                            if (publicRequestVideoWatermarksListValue.IsSetHorizontalOffset())
                            {
                                writer.WritePropertyName("HorizontalOffset");
                                writer.Write(publicRequestVideoWatermarksListValue.HorizontalOffset);
                            }

                            if (publicRequestVideoWatermarksListValue.IsSetId())
                            {
                                writer.WritePropertyName("Id");
                                writer.Write(publicRequestVideoWatermarksListValue.Id);
                            }

                            if (publicRequestVideoWatermarksListValue.IsSetMaxHeight())
                            {
                                writer.WritePropertyName("MaxHeight");
                                writer.Write(publicRequestVideoWatermarksListValue.MaxHeight);
                            }

                            if (publicRequestVideoWatermarksListValue.IsSetMaxWidth())
                            {
                                writer.WritePropertyName("MaxWidth");
                                writer.Write(publicRequestVideoWatermarksListValue.MaxWidth);
                            }

                            if (publicRequestVideoWatermarksListValue.IsSetOpacity())
                            {
                                writer.WritePropertyName("Opacity");
                                writer.Write(publicRequestVideoWatermarksListValue.Opacity);
                            }

                            if (publicRequestVideoWatermarksListValue.IsSetSizingPolicy())
                            {
                                writer.WritePropertyName("SizingPolicy");
                                writer.Write(publicRequestVideoWatermarksListValue.SizingPolicy);
                            }

                            if (publicRequestVideoWatermarksListValue.IsSetTarget())
                            {
                                writer.WritePropertyName("Target");
                                writer.Write(publicRequestVideoWatermarksListValue.Target);
                            }

                            if (publicRequestVideoWatermarksListValue.IsSetVerticalAlign())
                            {
                                writer.WritePropertyName("VerticalAlign");
                                writer.Write(publicRequestVideoWatermarksListValue.VerticalAlign);
                            }

                            if (publicRequestVideoWatermarksListValue.IsSetVerticalOffset())
                            {
                                writer.WritePropertyName("VerticalOffset");
                                writer.Write(publicRequestVideoWatermarksListValue.VerticalOffset);
                            }

                            writer.WriteObjectEnd();
                        }
                        writer.WriteArrayEnd();
                    }

                    writer.WriteObjectEnd();
                }


                writer.WriteObjectEnd();
                string snippet = stringWriter.ToString();
                request.Content = System.Text.Encoding.UTF8.GetBytes(snippet);
            }


            return(request);
        }
        private void WriteToken(JsonWriter writer, JToken token)
        {
            if (token is JObject)
            {
                JObject o = (JObject)token;

                JSchemaAnnotation schemaAnnotation = o.Annotation <JSchemaAnnotation>();

                if (schemaAnnotation != null)
                {
                    ReferenceOrWriteSchema(schemaAnnotation.Schema);
                }
                else
                {
                    writer.WriteStartObject();

                    foreach (JProperty property in o.Properties())
                    {
                        writer.WritePropertyName(property.Name);

                        JToken value = property.Value;
                        if (value != null)
                        {
                            WriteToken(writer, value);
                        }
                        else
                        {
                            writer.WriteNull();
                        }
                    }

                    writer.WriteEndObject();
                }
            }
            else if (token is JArray)
            {
                JArray a = (JArray)token;

                writer.WriteStartArray();

                for (int i = 0; i < a.Count; i++)
                {
                    WriteToken(writer, a[i]);
                }

                writer.WriteEndArray();
            }
            else if (token is JConstructor)
            {
                JConstructor c = (JConstructor)token;

                writer.WriteStartConstructor(c.Name);

                foreach (JToken t in c.Children())
                {
                    WriteToken(writer, t);
                }

                writer.WriteEndConstructor();
            }
            else if (token is JValue)
            {
                token.WriteTo(writer);
            }
        }
Example #38
0
        private void WriteNode(JsonWriter writer, Node node, JsonSerializer serializer)
        {
            writer.WriteStartObject();

            foreach (var attribute in node.Attributes)
            {
                writer.WritePropertyName(attribute.Key);
                writer.WriteStartObject();
                writer.WritePropertyName("type");
                writer.WriteValue((int)attribute.Value.Type);
                writer.WritePropertyName("value");
                switch (attribute.Value.Type)
                {
                case NodeAttribute.DataType.DT_Byte:
                    writer.WriteValue(Convert.ToByte(attribute.Value.Value));
                    break;

                case NodeAttribute.DataType.DT_Short:
                    writer.WriteValue(Convert.ToInt16(attribute.Value.Value));
                    break;

                case NodeAttribute.DataType.DT_UShort:
                    writer.WriteValue(Convert.ToUInt16(attribute.Value.Value));
                    break;

                case NodeAttribute.DataType.DT_Int:
                    writer.WriteValue(Convert.ToInt32(attribute.Value.Value));
                    break;

                case NodeAttribute.DataType.DT_UInt:
                    writer.WriteValue(Convert.ToUInt32(attribute.Value.Value));
                    break;

                case NodeAttribute.DataType.DT_Float:
                    writer.WriteValue(Convert.ToSingle(attribute.Value.Value));
                    break;

                case NodeAttribute.DataType.DT_Double:
                    writer.WriteValue(Convert.ToDouble(attribute.Value.Value));
                    break;

                case NodeAttribute.DataType.DT_Bool:
                    writer.WriteValue(Convert.ToBoolean(attribute.Value.Value));
                    break;

                case NodeAttribute.DataType.DT_String:
                case NodeAttribute.DataType.DT_Path:
                case NodeAttribute.DataType.DT_FixedString:
                case NodeAttribute.DataType.DT_LSString:
                case NodeAttribute.DataType.DT_WString:
                case NodeAttribute.DataType.DT_LSWString:
                    writer.WriteValue(attribute.Value.ToString());
                    break;

                case NodeAttribute.DataType.DT_ULongLong:
                    writer.WriteValue(Convert.ToUInt64(attribute.Value.Value));
                    break;

                // TODO: Not sure if this is the correct format
                case NodeAttribute.DataType.DT_ScratchBuffer:
                    writer.WriteValue(Convert.ToBase64String((byte[])attribute.Value.Value));
                    break;

                case NodeAttribute.DataType.DT_Long:
                    writer.WriteValue(Convert.ToInt64(attribute.Value.Value));
                    break;

                case NodeAttribute.DataType.DT_Int8:
                    writer.WriteValue(Convert.ToSByte(attribute.Value.Value));
                    break;

                case NodeAttribute.DataType.DT_TranslatedString:
                {
                    var ts = (TranslatedString)attribute.Value.Value;
                    writer.WriteValue(ts.Value);
                    writer.WritePropertyName("handle");
                    writer.WriteValue(ts.Handle);
                    break;
                }

                case NodeAttribute.DataType.DT_TranslatedFSString:
                {
                    var fs = (TranslatedFSString)attribute.Value.Value;
                    WriteTranslatedFSStringInner(writer, fs);
                    break;
                }

                case NodeAttribute.DataType.DT_UUID:
                    writer.WriteValue(((Guid)attribute.Value.Value).ToString());
                    break;

                // TODO: haven't seen any vectors/matrices in D:OS JSON files so far
                case NodeAttribute.DataType.DT_Vec2:
                case NodeAttribute.DataType.DT_Vec3:
                case NodeAttribute.DataType.DT_Vec4:
                {
                    var vec = (float[])attribute.Value.Value;
                    writer.WriteValue(String.Join(" ", vec));
                    break;
                }

                case NodeAttribute.DataType.DT_IVec2:
                case NodeAttribute.DataType.DT_IVec3:
                case NodeAttribute.DataType.DT_IVec4:
                {
                    var ivec = (int[])attribute.Value.Value;
                    writer.WriteValue(String.Join(" ", ivec));
                    break;
                }

                case NodeAttribute.DataType.DT_Mat2:
                case NodeAttribute.DataType.DT_Mat3:
                case NodeAttribute.DataType.DT_Mat3x4:
                case NodeAttribute.DataType.DT_Mat4x3:
                case NodeAttribute.DataType.DT_Mat4:
                {
                    var mat = (Matrix)attribute.Value.Value;
                    var str = "";
                    for (var r = 0; r < mat.rows; r++)
                    {
                        for (var c = 0; c < mat.cols; c++)
                        {
                            str += mat[r, c].ToString() + " ";
                        }
                        str += Environment.NewLine;
                    }

                    writer.WriteValue(str);
                    break;
                }

                case NodeAttribute.DataType.DT_None:
                default:
                    throw new NotImplementedException("Don't know how to serialize type " + attribute.Value.Type.ToString());
                }

                writer.WriteEndObject();
            }

            foreach (var children in node.Children)
            {
                writer.WritePropertyName(children.Key);
                writer.WriteStartArray();
                foreach (var child in children.Value)
                {
                    WriteNode(writer, child, serializer);
                }
                writer.WriteEndArray();
            }

            writer.WriteEndObject();
        }
Example #39
0
        private void WriteUpdateList(JsonWriter writer, SolrUpdateList solrUpdateList)
        {
            writer.WriteStartObject();
            var add = solrUpdateList.Get("add") as INamedList;

            if (add != null)
            {
                var overwrite    = add.Get("overwrite") as bool?;
                var commitWithin = add.Get("commitWithin") as int?;
                var docs         = add.GetOrDefault <List <SolrInputDocument> >("doc");
                if (!docs.IsNullOrEmpty())
                {
                    foreach (var doc in docs)
                    {
                        writer.WritePropertyName("add");
                        writer.WriteStartObject();
                        if (overwrite.HasValue)
                        {
                            writer.WritePropertyName("overwrite");
                            writer.WriteValue(overwrite.Value);
                        }
                        if (commitWithin.HasValue)
                        {
                            writer.WritePropertyName("commitWithin");
                            writer.WriteValue(commitWithin.Value);
                        }
                        if (doc.DocBoost.HasValue && doc.DocBoost.Value != 1f)
                        {
                            writer.WritePropertyName("boost");
                            writer.WriteValue(doc.DocBoost.Value);
                        }
                        writer.WritePropertyName("doc");
                        writer.WriteStartObject();
                        foreach (var solrInputField in doc.Fields)
                        {
                            writer.WritePropertyName(solrInputField.Key);
                            if (solrInputField.Value.Boost != 1f)
                            {
                                writer.WriteStartObject();
                                writer.WritePropertyName("boost");
                                writer.WriteValue(solrInputField.Value.Boost);
                                writer.WritePropertyName("value");
                                if (solrInputField.Value.Value is IList)
                                {
                                    WriteArray(writer, (IList)solrInputField.Value.Value);
                                    //writer.WriteStartArray();
                                    //foreach (var item in solrInputField.Value.Value as IList)
                                    //{
                                    //    writer.WriteValue(item);
                                    //}
                                    //writer.WriteEndArray();
                                }
                                else
                                {
                                    writer.WriteValue(solrInputField.Value.Value);
                                }
                                writer.WriteEndObject();
                            }
                            else
                            {
                                if (solrInputField.Value.Value is IList)
                                {
                                    WriteArray(writer, (IList)solrInputField.Value.Value);
                                }
                                else
                                {
                                    writer.WriteValue(solrInputField.Value.Value);
                                }
                            }
                        }
                        writer.WriteEndObject();
                        writer.WriteEndObject();
                    }
                }
            }
            var delete = solrUpdateList.Get("delete") as INamedList;

            if (delete != null)
            {
                for (int i = 0; i < delete.Count; i++)
                {
                    writer.WritePropertyName("delete");
                    writer.WriteStartObject();
                    var key = delete.GetKey(i);
                    writer.WritePropertyName(key);
                    var value = delete.Get(i);
                    writer.WriteValue(value);
                    writer.WriteEndObject();
                }
            }
            var commit = solrUpdateList.Get("commit") as INamedList;

            if (commit != null)
            {
                var key = commit.GetKey(0);
                writer.WritePropertyName(key);
                WriteNamedList(writer, commit.Get(0) as INamedList);
            }

            writer.WriteEndObject();
        }
        public IRequest Marshall(AddWorkingStorageRequest addWorkingStorageRequest)
        {
            IRequest request = new DefaultRequest(addWorkingStorageRequest, "AmazonStorageGateway");
            string   target  = "StorageGateway_20120630.AddWorkingStorage";

            request.Headers["X-Amz-Target"] = target;
            request.Headers["Content-Type"] = "application/x-amz-json-1.1";



            string uriResourcePath = "";

            if (uriResourcePath.Contains("?"))
            {
                string queryString = uriResourcePath.Substring(uriResourcePath.IndexOf("?") + 1);
                uriResourcePath = uriResourcePath.Substring(0, uriResourcePath.IndexOf("?"));

                foreach (string s in queryString.Split('&', ';'))
                {
                    string[] nameValuePair = s.Split('=');
                    if (nameValuePair.Length == 2 && nameValuePair[1].Length > 0)
                    {
                        request.Parameters.Add(nameValuePair[0], nameValuePair[1]);
                    }
                    else
                    {
                        request.Parameters.Add(nameValuePair[0], null);
                    }
                }
            }

            request.ResourcePath = uriResourcePath;


            using (StringWriter stringWriter = new StringWriter())
            {
                JsonWriter writer = new JsonWriter(stringWriter);
                writer.WriteObjectStart();

                if (addWorkingStorageRequest != null && addWorkingStorageRequest.IsSetGatewayARN())
                {
                    writer.WritePropertyName("GatewayARN");
                    writer.Write(addWorkingStorageRequest.GatewayARN);
                }

                if (addWorkingStorageRequest != null && addWorkingStorageRequest.DiskIds != null && addWorkingStorageRequest.DiskIds.Count > 0)
                {
                    List <string> diskIdsList = addWorkingStorageRequest.DiskIds;
                    writer.WritePropertyName("DiskIds");
                    writer.WriteArrayStart();

                    foreach (string diskIdsListValue in diskIdsList)
                    {
                        writer.Write(StringUtils.FromString(diskIdsListValue));
                    }

                    writer.WriteArrayEnd();
                }

                writer.WriteObjectEnd();

                string snippet = stringWriter.ToString();
                request.Content = System.Text.Encoding.UTF8.GetBytes(snippet);
            }


            return(request);
        }
        /// <summary>
        /// Converts <see cref="Twin"/> to its equivalent Json representation.
        /// </summary>
        /// <param name="writer">the Json writer.</param>
        /// <param name="value">the <see cref="Twin"/> to convert.</param>
        /// <param name="serializer">the Json serializer.</param>
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            if (value == null)
            {
                return;
            }

            if (writer == null)
            {
                throw new ArgumentNullException(nameof(writer));
            }

            if (serializer == null)
            {
                throw new ArgumentNullException(nameof(serializer));
            }

            var twin = value as Twin;

            if (twin == null)
            {
                throw new InvalidOperationException("Object passed is not of type Twin.");
            }

            writer.WriteStartObject();

            if (!string.IsNullOrWhiteSpace(twin.ModelId))
            {
                writer.WritePropertyName(ModelId);
                writer.WriteValue(twin.ModelId);
            }

            writer.WritePropertyName(DeviceIdJsonTag);
            writer.WriteValue(twin.DeviceId);

            if (!string.IsNullOrWhiteSpace(twin.ModuleId))
            {
                writer.WritePropertyName(ModuleIdJsonTag);
                writer.WriteValue(twin.ModuleId);
            }

            writer.WritePropertyName(ETagJsonTag);
            writer.WriteValue(twin.ETag);

            writer.WritePropertyName(VersionTag);
            writer.WriteValue(twin.Version);

            if (twin.Status != null)
            {
                writer.WritePropertyName(StatusTag);
                writer.WriteRawValue(JsonConvert.SerializeObject(twin.Status));
            }

            if (!string.IsNullOrWhiteSpace(twin.StatusReason))
            {
                writer.WritePropertyName(StatusReasonTag);
                writer.WriteValue(twin.StatusReason);
            }

            if (twin.StatusUpdatedTime != null)
            {
                writer.WritePropertyName(StatusUpdateTimeTag);
                writer.WriteValue(twin.StatusUpdatedTime);
            }

            if (twin.ConnectionState != null)
            {
                writer.WritePropertyName(ConnectionStateTag);
                writer.WriteRawValue(JsonConvert.SerializeObject(twin.ConnectionState, new StringEnumConverter()));
            }

            if (twin.LastActivityTime != null)
            {
                writer.WritePropertyName(LastActivityTimeTag);
                writer.WriteValue(twin.LastActivityTime);
            }

            if (twin.CloudToDeviceMessageCount != null)
            {
                writer.WritePropertyName(CloudToDeviceMessageCountTag);
                writer.WriteValue(twin.CloudToDeviceMessageCount);
            }

            if (twin.AuthenticationType != null)
            {
                writer.WritePropertyName(AuthenticationTypeTag);
                writer.WriteRawValue(JsonConvert.SerializeObject(twin.AuthenticationType));
            }

            if (twin.X509Thumbprint != null)
            {
                writer.WritePropertyName(X509ThumbprintTag);
                serializer.Serialize(writer, twin.X509Thumbprint);
            }

            if (twin.Configurations != null)
            {
                writer.WritePropertyName(ConfigurationsJsonTag);
                serializer.Serialize(writer, twin.Configurations, typeof(IDictionary <string, ConfigurationInfo>));
            }

            if (twin.Tags != null && twin.Tags.Count > 0)
            {
                writer.WritePropertyName(TagsJsonTag);
                serializer.Serialize(writer, twin.Tags, typeof(IDictionary <string, object>));
            }

            if (twin.Properties?.Desired != null || twin.Properties?.Reported != null)
            {
                writer.WritePropertyName(PropertiesJsonTag);
                writer.WriteStartObject();
                if (twin.Properties.Desired != null)
                {
                    writer.WritePropertyName(DesiredPropertiesJsonTag);
                    serializer.Serialize(writer, twin.Properties.Desired, typeof(TwinCollection));
                }

                if (twin.Properties.Reported != null)
                {
                    writer.WritePropertyName(ReportedPropertiesJsonTag);
                    serializer.Serialize(writer, twin.Properties.Reported, typeof(TwinCollection));
                }

                writer.WriteEndObject();
            }

            writer.WriteEndObject();
        }
Example #42
0
        private void WriteJsonValue(JsonWriter writer, IJsonValue value)
        {
            switch (value.ValueType)
            {
            case JsonValueType.Array:
            {
                JsonArray a = value.GetArray();
                writer.WriteStartArray();
                for (int i = 0; i < a.Count; i++)
                {
                    WriteJsonValue(writer, a[i]);
                }
                writer.WriteEndArray();
            }
            break;

            case JsonValueType.Boolean:
            {
                writer.WriteValue(value.GetBoolean());
            }
            break;

            case JsonValueType.Null:
            {
                writer.WriteNull();
            }
            break;

            case JsonValueType.Number:
            {
                // JsonValue doesn't support integers
                // serialize whole numbers without a decimal point
                double d         = value.GetNumber();
                bool   isInteger = (d % 1 == 0);
                if (isInteger && d <= long.MaxValue && d >= long.MinValue)
                {
                    writer.WriteValue(Convert.ToInt64(d));
                }
                else
                {
                    writer.WriteValue(d);
                }
            }
            break;

            case JsonValueType.Object:
            {
                JsonObject o = value.GetObject();
                writer.WriteStartObject();
                foreach (KeyValuePair <string, IJsonValue> v in o)
                {
                    writer.WritePropertyName(v.Key);
                    WriteJsonValue(writer, v.Value);
                }
                writer.WriteEndObject();
            }
            break;

            case JsonValueType.String:
            {
                writer.WriteValue(value.GetString());
            }
            break;

            default:
                throw new ArgumentOutOfRangeException("ValueType");
            }
        }
Example #43
0
        public void Serialize(ref JsonWriter writer, IGeoBoundingBoxQuery value, IJsonFormatterResolver formatterResolver)
        {
            if (value == null)
            {
                writer.WriteNull();
                return;
            }

            var written = false;

            writer.WriteBeginObject();

            if (!value.Name.IsNullOrEmpty())
            {
                writer.WritePropertyName("_name");
                writer.WriteString(value.Name);
                written = true;
            }

            if (value.Boost != null)
            {
                if (written)
                {
                    writer.WriteValueSeparator();
                }

                writer.WritePropertyName("boost");
                writer.WriteDouble(value.Boost.Value);
                written = true;
            }

            if (value.ValidationMethod != null)
            {
                if (written)
                {
                    writer.WriteValueSeparator();
                }

                writer.WritePropertyName("validation_method");
                formatterResolver.GetFormatter <GeoValidationMethod>()
                .Serialize(ref writer, value.ValidationMethod.Value, formatterResolver);
                written = true;
            }

            if (value.Type != null)
            {
                if (written)
                {
                    writer.WriteValueSeparator();
                }

                writer.WritePropertyName("type");
                formatterResolver.GetFormatter <GeoExecution>()
                .Serialize(ref writer, value.Type.Value, formatterResolver);
                written = true;
            }

            if (written)
            {
                writer.WriteValueSeparator();
            }

            var settings = formatterResolver.GetConnectionSettings();

            writer.WritePropertyName(settings.Inferrer.Field(value.Field));
            formatterResolver.GetFormatter <IBoundingBox>()
            .Serialize(ref writer, value.BoundingBox, formatterResolver);

            writer.WriteEndObject();
        }
        public static string ToJsonDocument(object value, string fullDocumentPath)
        {
            var writer = new JsonWriter();

            writer.PrettyPrint = true;

            writer.WriteObjectStart();
            writer.WritePropertyName("name"); //document name
            writer.Write(fullDocumentPath);

            WriteFields(value);

            /// <summary>
            /// "fields" is not surrounded by object { } after this call
            /// </summary>
            void WriteFields(object v)
            {
                writer.WritePropertyName("fields");
                writer.WriteObjectStart();

                //REFLESIA OF ETERNITY
                if (v == null)
                {
                    throw new FirestormException($"Found null value in the object you are trying to make into a Json!");
                }

                var fields = v.GetType().GetFields(BindingFlags.Public | BindingFlags.Instance);

                foreach (var field in fields)
                {
                    //Debug.Log($"Propp {field.Name}");
                    writer.WritePropertyName(field.Name);

                    bool hasTimestampAttribute = field.GetCustomAttribute <ServerTimestamp>() != null;
                    var  fieldObject           = field.GetValue(v);

                    WriterDecision(fieldObject, hasTimestampAttribute);

                    void WriterDecision(object obj, bool timestampAttribute = false)
                    {
                        writer.WriteObjectStart();
                        var formatted = FormatForValueJson(obj);

                        switch (obj)
                        {
                        case List <object> lo:
                            writer.WritePropertyName(formatted.typeString);
                            writer.WriteObjectStart();
                            writer.WritePropertyName("values");
                            writer.WriteArrayStart();
                            foreach (object fromArray in lo)
                            {
                                //probably explode if you put List<object> in List<object>
                                WriterDecision(fromArray);
                            }

                            writer.WriteArrayEnd();
                            writer.WriteObjectEnd();
                            break;

                        case byte[] by:
                            //UnityEngine.Debug.Log($"WRITING BYTE");
                            writer.WritePropertyName(formatted.typeString);
                            writer.Write(Convert.ToBase64String((byte[])formatted.objectForJson));
                            break;

                        default:
                            if (formatted.typeString == "mapValue")
                            {
                                writer.WritePropertyName(formatted.typeString);
                                writer.WriteObjectStart();
                                WriteFields(formatted.objectForJson);
                                writer.WriteObjectEnd();
                            }
                            else
                            {
                                writer.WritePropertyName(formatted.typeString);
                                writer.WriteSmart(formatted.objectForJson);
                            }

                            break;
                        }

                        writer.WriteObjectEnd();
                    }
                }

                writer.WriteObjectEnd(); //fields
            } //WriteFields

            writer.WriteObjectEnd(); //top
            return(writer.ToString());
        }
        public IRequest Marshall(DescribeTapesRequest describeTapesRequest)
        {
            IRequest request = new DefaultRequest(describeTapesRequest, "AmazonStorageGateway");
            string   target  = "StorageGateway_20130630.DescribeTapes";

            request.Headers["X-Amz-Target"] = target;

            request.Headers["Content-Type"] = "application/x-amz-json-1.1";


            string uriResourcePath = "";

            if (uriResourcePath.Contains("?"))
            {
                int    queryPosition = uriResourcePath.IndexOf("?", StringComparison.OrdinalIgnoreCase);
                string queryString   = uriResourcePath.Substring(queryPosition + 1);
                uriResourcePath = uriResourcePath.Substring(0, queryPosition);

                foreach (string s in queryString.Split('&', ';'))
                {
                    string[] nameValuePair = s.Split('=');
                    if (nameValuePair.Length == 2 && nameValuePair[1].Length > 0)
                    {
                        request.Parameters.Add(nameValuePair[0], nameValuePair[1]);
                    }
                    else
                    {
                        request.Parameters.Add(nameValuePair[0], null);
                    }
                }
            }

            request.ResourcePath = uriResourcePath;


            using (StringWriter stringWriter = new StringWriter(System.Globalization.CultureInfo.InvariantCulture))
            {
                JsonWriter writer = new JsonWriter(stringWriter);
                writer.WriteObjectStart();

                if (describeTapesRequest != null && describeTapesRequest.IsSetGatewayARN())
                {
                    writer.WritePropertyName("GatewayARN");
                    writer.Write(describeTapesRequest.GatewayARN);
                }

                if (describeTapesRequest != null && describeTapesRequest.TapeARNs != null && describeTapesRequest.TapeARNs.Count > 0)
                {
                    List <string> tapeARNsList = describeTapesRequest.TapeARNs;
                    writer.WritePropertyName("TapeARNs");
                    writer.WriteArrayStart();

                    foreach (string tapeARNsListValue in tapeARNsList)
                    {
                        writer.Write(StringUtils.FromString(tapeARNsListValue));
                    }

                    writer.WriteArrayEnd();
                }
                if (describeTapesRequest != null && describeTapesRequest.IsSetMarker())
                {
                    writer.WritePropertyName("Marker");
                    writer.Write(describeTapesRequest.Marker);
                }
                if (describeTapesRequest != null && describeTapesRequest.IsSetLimit())
                {
                    writer.WritePropertyName("Limit");
                    writer.Write(describeTapesRequest.Limit);
                }

                writer.WriteObjectEnd();

                string snippet = stringWriter.ToString();
                request.Content = System.Text.Encoding.UTF8.GetBytes(snippet);
            }


            return(request);
        }
Example #46
0
        private void SerializeNode(JsonWriter writer, IXmlNode node, XmlNamespaceManager manager, bool writePropertyName)
        {
            switch (node.NodeType)
            {
            case XmlNodeType.Document:
            case XmlNodeType.DocumentFragment:
                this.SerializeGroupedNodes(writer, node, manager, writePropertyName);
                break;

            case XmlNodeType.Element:
                if (this.IsArray(node) && node.ChildNodes.All(n => n.LocalName == node.LocalName) && node.ChildNodes.Count > 0)
                {
                    this.SerializeGroupedNodes(writer, node, manager, false);
                }
                else
                {
                    foreach (IXmlNode attribute in node.Attributes)
                    {
                        if (attribute.NamespaceUri == "http://www.w3.org/2000/xmlns/")
                        {
                            string prefix = (attribute.LocalName != "xmlns")
                                                ? attribute.LocalName
                                                : string.Empty;

                            manager.AddNamespace(prefix, attribute.Value);
                        }
                    }

                    if (writePropertyName)
                    {
                        writer.WritePropertyName(this.GetPropertyName(node, manager));
                    }

                    if (!this.ValueAttributes(node.Attributes).Any() && node.ChildNodes.Count == 1 &&
                        node.ChildNodes[0].NodeType == XmlNodeType.Text)
                    {
                        // write elements with a single text child as a name value pair
                        writer.WriteValue(node.ChildNodes[0].Value);
                    }
                    else if (node.ChildNodes.Count == 0 && CollectionUtils.IsNullOrEmpty(node.Attributes))
                    {
                        // empty element
                        writer.WriteNull();
                    }
                    else
                    {
                        writer.WriteStartObject();

                        for (int i = 0; i < node.Attributes.Count; i++)
                        {
                            this.SerializeNode(writer, node.Attributes[i], manager, true);
                        }

                        this.SerializeGroupedNodes(writer, node, manager, true);

                        writer.WriteEndObject();
                    }
                }

                break;

            case XmlNodeType.Comment:
                if (writePropertyName)
                {
                    writer.WriteComment(node.Value);
                }
                break;

            case XmlNodeType.Attribute:
            case XmlNodeType.Text:
            case XmlNodeType.CDATA:
            case XmlNodeType.ProcessingInstruction:
            case XmlNodeType.Whitespace:
            case XmlNodeType.SignificantWhitespace:
                if (node.NamespaceUri == "http://www.w3.org/2000/xmlns/" && node.Value == JsonNamespaceUri)
                {
                    return;
                }

                if (node.NamespaceUri == JsonNamespaceUri)
                {
                    if (node.LocalName == "Array")
                    {
                        return;
                    }
                }

                if (writePropertyName)
                {
                    writer.WritePropertyName(this.GetPropertyName(node, manager));
                }
                writer.WriteValue(node.Value);
                break;

            case XmlNodeType.XmlDeclaration:
                IXmlDeclaration declaration = (IXmlDeclaration)node;
                writer.WritePropertyName(this.GetPropertyName(node, manager));
                writer.WriteStartObject();

                if (!string.IsNullOrEmpty(declaration.Version))
                {
                    writer.WritePropertyName("@version");
                    writer.WriteValue(declaration.Version);
                }
                if (!string.IsNullOrEmpty(declaration.Encoding))
                {
                    writer.WritePropertyName("@encoding");
                    writer.WriteValue(declaration.Encoding);
                }
                if (!string.IsNullOrEmpty(declaration.Standalone))
                {
                    writer.WritePropertyName("@standalone");
                    writer.WriteValue(declaration.Standalone);
                }

                writer.WriteEndObject();
                break;

            default:
                throw new JsonSerializationException(string.Format("Unexpected XmlNodeType when serializing nodes: {0}", node.NodeType));
            }
        }
        public IRequest Marshall(StartWorkflowExecutionRequest startWorkflowExecutionRequest)
        {
            IRequest request = new DefaultRequest(startWorkflowExecutionRequest, "AmazonSimpleWorkflow");
            string   target  = "SimpleWorkflowService.StartWorkflowExecution";

            request.Headers["X-Amz-Target"] = target;

            request.Headers["Content-Type"] = "application/x-amz-json-1.0";

            string uriResourcePath = "";

            request.ResourcePath = uriResourcePath;


            using (StringWriter stringWriter = new StringWriter(CultureInfo.InvariantCulture))
            {
                JsonWriter writer = new JsonWriter(stringWriter);
                writer.WriteObjectStart();

                if (startWorkflowExecutionRequest != null && startWorkflowExecutionRequest.IsSetDomain())
                {
                    writer.WritePropertyName("domain");
                    writer.Write(startWorkflowExecutionRequest.Domain);
                }
                if (startWorkflowExecutionRequest != null && startWorkflowExecutionRequest.IsSetWorkflowId())
                {
                    writer.WritePropertyName("workflowId");
                    writer.Write(startWorkflowExecutionRequest.WorkflowId);
                }

                if (startWorkflowExecutionRequest != null)
                {
                    WorkflowType workflowType = startWorkflowExecutionRequest.WorkflowType;
                    if (workflowType != null)
                    {
                        writer.WritePropertyName("workflowType");
                        writer.WriteObjectStart();
                        if (workflowType != null && workflowType.IsSetName())
                        {
                            writer.WritePropertyName("name");
                            writer.Write(workflowType.Name);
                        }
                        if (workflowType != null && workflowType.IsSetVersion())
                        {
                            writer.WritePropertyName("version");
                            writer.Write(workflowType.Version);
                        }
                        writer.WriteObjectEnd();
                    }
                }

                if (startWorkflowExecutionRequest != null)
                {
                    TaskList taskList = startWorkflowExecutionRequest.TaskList;
                    if (taskList != null)
                    {
                        writer.WritePropertyName("taskList");
                        writer.WriteObjectStart();
                        if (taskList != null && taskList.IsSetName())
                        {
                            writer.WritePropertyName("name");
                            writer.Write(taskList.Name);
                        }
                        writer.WriteObjectEnd();
                    }
                }
                if (startWorkflowExecutionRequest != null && startWorkflowExecutionRequest.IsSetInput())
                {
                    writer.WritePropertyName("input");
                    writer.Write(startWorkflowExecutionRequest.Input);
                }
                if (startWorkflowExecutionRequest != null && startWorkflowExecutionRequest.IsSetExecutionStartToCloseTimeout())
                {
                    writer.WritePropertyName("executionStartToCloseTimeout");
                    writer.Write(startWorkflowExecutionRequest.ExecutionStartToCloseTimeout);
                }

                if (startWorkflowExecutionRequest != null && startWorkflowExecutionRequest.TagList != null && startWorkflowExecutionRequest.TagList.Count > 0)
                {
                    List <string> tagListList = startWorkflowExecutionRequest.TagList;
                    writer.WritePropertyName("tagList");
                    writer.WriteArrayStart();

                    foreach (string tagListListValue in tagListList)
                    {
                        writer.Write(StringUtils.FromString(tagListListValue));
                    }

                    writer.WriteArrayEnd();
                }
                if (startWorkflowExecutionRequest != null && startWorkflowExecutionRequest.IsSetTaskStartToCloseTimeout())
                {
                    writer.WritePropertyName("taskStartToCloseTimeout");
                    writer.Write(startWorkflowExecutionRequest.TaskStartToCloseTimeout);
                }
                if (startWorkflowExecutionRequest != null && startWorkflowExecutionRequest.IsSetChildPolicy())
                {
                    writer.WritePropertyName("childPolicy");
                    writer.Write(startWorkflowExecutionRequest.ChildPolicy);
                }

                writer.WriteObjectEnd();

                string snippet = stringWriter.ToString();
                request.Content = System.Text.Encoding.UTF8.GetBytes(snippet);
            }


            return(request);
        }
Example #48
0
 public override void WriteTo(JsonWriter writer)
 {
     writer.WritePropertyName(_name);
     Value.WriteTo(writer);
 }
Example #49
0
        public static void AnalyzeMojomFile(JsonWriter jsonWriter, string mojomFileContents, string mojomFilePath, string commit)
        {
            RegexOptions regexOptions = RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline;
            Regex        moduleRegex  = new Regex(@"^module (.*?);", regexOptions);
            string       moduleName   = moduleRegex.Match(mojomFileContents).Groups[1].Value;

            //
            // Extract interfaces and methods
            //
            Regex interfacesRegex = new Regex(@"^interface (.*?) \{(" +
                                              @"(?:[^{}]|(?<open>\{)|(?<-open>\}))*(?(open)(?!))" +     // match balanced '{' and '}'
                                              @")\};", regexOptions);
            MatchCollection interfacesMatches = interfacesRegex.Matches(mojomFileContents);

            foreach (Match interfaceMatch in interfacesMatches)
            {
                string interfaceDefinition     = interfaceMatch.Groups[0].Value;
                string interfaceName           = interfaceMatch.Groups[1].Value;
                int    interfaceDefinitionLine = ToLineNumber(mojomFileContents, interfaceMatch.Groups[0].Index);

                // Iterate the methods defined in this interace
                Regex           methodsRegex  = new Regex(@"^[^\/{}]+?\(.*?\);", regexOptions);
                MatchCollection methodMatches = methodsRegex.Matches(interfaceDefinition);
                foreach (Match methodMatch in methodMatches)
                {
                    string methodDecleration     = methodMatch.Groups[0].Value.Trim();
                    int    methodDeclerationLine = interfaceDefinitionLine + ToLineNumber(interfaceDefinition, methodMatch.Groups[0].Index) - 1;
                    string methodName            = methodDecleration.Trim().Split('(')[0].Replace("\n", "");

                    methodDecleration = CleanUpDefinition(methodDecleration);

                    // check for [EnableIf=SomeCondition] stuff
                    if (methodName.IndexOf(']') != -1)
                    {
                        // extract the real method name
                        methodName = methodName.Substring(methodName.IndexOf(']') + 1).Trim();

                        if (methodDecleration.Contains("EnableIf=") && !methodDecleration.Contains("EnableIf=is_win"))
                        {
                            // We are on Windows. skip anything that wouldn't have compiled on release versions
                            if (ignoredFeatures.Any(feature => methodDecleration.Contains("EnableIf=" + feature)))
                            {
                                continue;
                            }
                        }
                    }

                    string fullMethodName = moduleName + "." + interfaceName + "." + methodName;

                    string mojomFileLink = @"https://source.chromium.org/chromium/chromium/src/+/" + commit + ":" + mojomFilePath + ";l=" + methodDeclerationLine;

                    jsonWriter.WritePropertyName(fullMethodName);
                    jsonWriter.WriteStartObject();
                    jsonWriter.WritePropertyName("definition");
                    jsonWriter.WriteValue(methodDecleration.Trim());
                    jsonWriter.WritePropertyName("link");
                    jsonWriter.WriteValue(mojomFileLink);
                    jsonWriter.WriteEndObject();
                }
            }

            //
            // Extract structs, enums and unions
            //
            Regex structsRegex = new Regex(@"^ *struct (\w+?) \{((?:[^{}]|(?<open>\{)|(?<-open>\}))*(?(open)(?!)))\};|^ *struct (\w+?);", regexOptions);
            Regex enumsRegex   = new Regex(@"^ *enum (\w+?) \{((?:[^{}]|(?<open>\{)|(?<-open>\}))*(?(open)(?!)))\};|^ *enum (\w+?);", regexOptions);
            Regex unionsRegex  = new Regex(@"^ *union (\w+?) \{((?:[^{}]|(?<open>\{)|(?<-open>\}))*(?(open)(?!)))\};|^ *union (\w+?);", regexOptions);

            MatchCollection     structsMatches  = structsRegex.Matches(mojomFileContents);
            MatchCollection     enumsMatches    = enumsRegex.Matches(mojomFileContents);
            MatchCollection     unionsMatches   = unionsRegex.Matches(mojomFileContents);
            IEnumerable <Match> combinedMatches = structsMatches.OfType <Match>().Concat(enumsMatches.OfType <Match>()).Concat(unionsMatches.OfType <Match>()).Where(m => m.Success);

            foreach (Match match in combinedMatches)
            {
                string structDefinition     = match.Groups[0].Value.Trim();
                string stuctName            = match.Groups[1].Value != "" ? match.Groups[1].Value : structDefinition.Split(' ')[1].Replace(";", "");
                string fullStructName       = moduleName + "." + stuctName;
                string structContents       = match.Groups[2].Value;
                int    structDefinitionLine = ToLineNumber(mojomFileContents, match.Groups[0].Index);

                if (structContents != "")
                {
                    // TODO: inner structs/enums should be extracted instead of cleaned
                    string structContentsCleaned = CleanUpInnerStructs(structContents, structsRegex, enumsRegex, unionsRegex);
                    structDefinition = structDefinition.Replace(structContents, structContentsCleaned);
                }

                structDefinition = CleanUpDefinition(structDefinition);

                string mojomFileLink = @"https://source.chromium.org/chromium/chromium/src/+/" + commit + ":" + mojomFilePath + ";l=" + structDefinitionLine;

                jsonWriter.WritePropertyName(fullStructName); jsonWriter.WriteStartObject();
                jsonWriter.WritePropertyName("definition");
                jsonWriter.WriteValue(structDefinition.Trim());
                jsonWriter.WritePropertyName("link");
                jsonWriter.WriteValue(mojomFileLink);
                jsonWriter.WriteEndObject();
            }
        }
        public IRequest Marshall(SetTerminationProtectionRequest setTerminationProtectionRequest)
        {
            IRequest request = new DefaultRequest(setTerminationProtectionRequest, "AmazonElasticMapReduce");
            string   target  = "ElasticMapReduce.SetTerminationProtection";

            request.Headers["X-Amz-Target"] = target;
            request.Headers["Content-Type"] = "application/x-amz-json-1.1";



            string uriResourcePath = "";

            if (uriResourcePath.Contains("?"))
            {
                string queryString = uriResourcePath.Substring(uriResourcePath.IndexOf("?") + 1);
                uriResourcePath = uriResourcePath.Substring(0, uriResourcePath.IndexOf("?"));

                foreach (string s in queryString.Split('&', ';'))
                {
                    string[] nameValuePair = s.Split('=');
                    if (nameValuePair.Length == 2 && nameValuePair[1].Length > 0)
                    {
                        request.Parameters.Add(nameValuePair[0], nameValuePair[1]);
                    }
                    else
                    {
                        request.Parameters.Add(nameValuePair[0], null);
                    }
                }
            }

            request.ResourcePath = uriResourcePath;


            using (StringWriter stringWriter = new StringWriter())
            {
                JsonWriter writer = new JsonWriter(stringWriter);
                writer.WriteObjectStart();


                if (setTerminationProtectionRequest != null && setTerminationProtectionRequest.JobFlowIds != null && setTerminationProtectionRequest.JobFlowIds.Count > 0)
                {
                    List <string> jobFlowIdsList = setTerminationProtectionRequest.JobFlowIds;
                    writer.WritePropertyName("JobFlowIds");
                    writer.WriteArrayStart();

                    foreach (string jobFlowIdsListValue in jobFlowIdsList)
                    {
                        writer.Write(StringUtils.FromString(jobFlowIdsListValue));
                    }

                    writer.WriteArrayEnd();
                }
                if (setTerminationProtectionRequest != null && setTerminationProtectionRequest.IsSetTerminationProtected())
                {
                    writer.WritePropertyName("TerminationProtected");
                    writer.Write(setTerminationProtectionRequest.TerminationProtected);
                }

                writer.WriteObjectEnd();

                string snippet = stringWriter.ToString();
                request.Content = System.Text.Encoding.UTF8.GetBytes(snippet);
            }


            return(request);
        }
 private void WriteReferenceObject(Uri reference)
 {
     _writer.WriteStartObject();
     _writer.WritePropertyName(JsonTypeReflector.RefPropertyName);
     _writer.WriteValue(reference);
     _writer.WriteEndObject();
 }
Example #52
0
        public IRequest Marshall(AllocatePublicVirtualInterfaceRequest allocatePublicVirtualInterfaceRequest)
        {
            IRequest request = new DefaultRequest(allocatePublicVirtualInterfaceRequest, "AmazonDirectConnect");
            string   target  = "OvertureService.AllocatePublicVirtualInterface";

            request.Headers["X-Amz-Target"] = target;
            request.Headers["Content-Type"] = "application/x-amz-json-1.1";



            string uriResourcePath = "";

            if (uriResourcePath.Contains("?"))
            {
                string queryString = uriResourcePath.Substring(uriResourcePath.IndexOf("?") + 1);
                uriResourcePath = uriResourcePath.Substring(0, uriResourcePath.IndexOf("?"));

                foreach (string s in queryString.Split('&', ';'))
                {
                    string[] nameValuePair = s.Split('=');
                    if (nameValuePair.Length == 2 && nameValuePair[1].Length > 0)
                    {
                        request.Parameters.Add(nameValuePair[0], nameValuePair[1]);
                    }
                    else
                    {
                        request.Parameters.Add(nameValuePair[0], null);
                    }
                }
            }

            request.ResourcePath = uriResourcePath;


            using (StringWriter stringWriter = new StringWriter())
            {
                JsonWriter writer = new JsonWriter(stringWriter);
                writer.WriteObjectStart();

                if (allocatePublicVirtualInterfaceRequest != null && allocatePublicVirtualInterfaceRequest.IsSetConnectionId())
                {
                    writer.WritePropertyName("connectionId");
                    writer.Write(allocatePublicVirtualInterfaceRequest.ConnectionId);
                }
                if (allocatePublicVirtualInterfaceRequest != null && allocatePublicVirtualInterfaceRequest.IsSetOwnerAccount())
                {
                    writer.WritePropertyName("ownerAccount");
                    writer.Write(allocatePublicVirtualInterfaceRequest.OwnerAccount);
                }

                if (allocatePublicVirtualInterfaceRequest != null)
                {
                    NewPublicVirtualInterfaceAllocation newPublicVirtualInterfaceAllocation = allocatePublicVirtualInterfaceRequest.NewPublicVirtualInterfaceAllocation;
                    if (newPublicVirtualInterfaceAllocation != null)
                    {
                        writer.WritePropertyName("newPublicVirtualInterfaceAllocation");
                        writer.WriteObjectStart();
                        if (newPublicVirtualInterfaceAllocation != null && newPublicVirtualInterfaceAllocation.IsSetVirtualInterfaceName())
                        {
                            writer.WritePropertyName("virtualInterfaceName");
                            writer.Write(newPublicVirtualInterfaceAllocation.VirtualInterfaceName);
                        }
                        if (newPublicVirtualInterfaceAllocation != null && newPublicVirtualInterfaceAllocation.IsSetVlan())
                        {
                            writer.WritePropertyName("vlan");
                            writer.Write(newPublicVirtualInterfaceAllocation.Vlan);
                        }
                        if (newPublicVirtualInterfaceAllocation != null && newPublicVirtualInterfaceAllocation.IsSetAsn())
                        {
                            writer.WritePropertyName("asn");
                            writer.Write(newPublicVirtualInterfaceAllocation.Asn);
                        }
                        if (newPublicVirtualInterfaceAllocation != null && newPublicVirtualInterfaceAllocation.IsSetAuthKey())
                        {
                            writer.WritePropertyName("authKey");
                            writer.Write(newPublicVirtualInterfaceAllocation.AuthKey);
                        }
                        if (newPublicVirtualInterfaceAllocation != null && newPublicVirtualInterfaceAllocation.IsSetAmazonAddress())
                        {
                            writer.WritePropertyName("amazonAddress");
                            writer.Write(newPublicVirtualInterfaceAllocation.AmazonAddress);
                        }
                        if (newPublicVirtualInterfaceAllocation != null && newPublicVirtualInterfaceAllocation.IsSetCustomerAddress())
                        {
                            writer.WritePropertyName("customerAddress");
                            writer.Write(newPublicVirtualInterfaceAllocation.CustomerAddress);
                        }

                        if (newPublicVirtualInterfaceAllocation != null && newPublicVirtualInterfaceAllocation.RouteFilterPrefixes != null && newPublicVirtualInterfaceAllocation.RouteFilterPrefixes.Count > 0)
                        {
                            List <RouteFilterPrefix> routeFilterPrefixesList = newPublicVirtualInterfaceAllocation.RouteFilterPrefixes;
                            writer.WritePropertyName("routeFilterPrefixes");
                            writer.WriteArrayStart();

                            foreach (RouteFilterPrefix routeFilterPrefixesListValue in routeFilterPrefixesList)
                            {
                                writer.WriteObjectStart();
                                if (routeFilterPrefixesListValue != null && routeFilterPrefixesListValue.IsSetCidr())
                                {
                                    writer.WritePropertyName("cidr");
                                    writer.Write(routeFilterPrefixesListValue.Cidr);
                                }
                                writer.WriteObjectEnd();
                            }
                            writer.WriteArrayEnd();
                        }
                        writer.WriteObjectEnd();
                    }
                }

                writer.WriteObjectEnd();

                string snippet = stringWriter.ToString();
                request.Content = System.Text.Encoding.UTF8.GetBytes(snippet);
            }


            return(request);
        }
Example #53
0
        public IRequest Marshall(SetVaultNotificationsRequest setVaultNotificationsRequest)
        {
            IRequest request = new DefaultRequest(setVaultNotificationsRequest, "AmazonGlacier");
            string   target  = "Glacier.SetVaultNotifications";

            request.Headers["X-Amz-Target"] = target;

            request.Headers["Content-Type"] = "application/x-amz-json-1.0";
            request.HttpMethod = "PUT";
            string uriResourcePath = "/{accountId}/vaults/{vaultName}/notification-configuration";

            if (setVaultNotificationsRequest.IsSetAccountId())
            {
                uriResourcePath = uriResourcePath.Replace("{accountId}", StringUtils.FromString(setVaultNotificationsRequest.AccountId));
            }
            else
            {
                uriResourcePath = uriResourcePath.Replace("{accountId}", "");
            }
            if (setVaultNotificationsRequest.IsSetVaultName())
            {
                uriResourcePath = uriResourcePath.Replace("{vaultName}", StringUtils.FromString(setVaultNotificationsRequest.VaultName));
            }
            else
            {
                uriResourcePath = uriResourcePath.Replace("{vaultName}", "");
            }
            request.ResourcePath = uriResourcePath;


            using (StringWriter stringWriter = new StringWriter(CultureInfo.InvariantCulture))
            {
                JsonWriter writer = new JsonWriter(stringWriter);
                writer.WriteObjectStart();

                if (setVaultNotificationsRequest.VaultNotificationConfig != null && setVaultNotificationsRequest.VaultNotificationConfig.IsSetSNSTopic())
                {
                    writer.WritePropertyName("SNSTopic");
                    writer.Write(setVaultNotificationsRequest.VaultNotificationConfig.SNSTopic);
                }

                if (setVaultNotificationsRequest.VaultNotificationConfig != null && setVaultNotificationsRequest.VaultNotificationConfig.Events != null && setVaultNotificationsRequest.VaultNotificationConfig.Events.Count > 0)
                {
                    List <string> eventsList = setVaultNotificationsRequest.VaultNotificationConfig.Events;
                    writer.WritePropertyName("Events");
                    writer.WriteArrayStart();

                    foreach (string eventsListValue in eventsList)
                    {
                        writer.Write(StringUtils.FromString(eventsListValue));
                    }

                    writer.WriteArrayEnd();
                }

                writer.WriteObjectEnd();

                string snippet = stringWriter.ToString();
                request.Content = System.Text.Encoding.UTF8.GetBytes(snippet);
            }


            return(request);
        }
Example #54
0
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            if (value != null)
            {
                TypeInfo ti = value.GetType().GetTypeInfo();

                if (value is MEDMObj)
                {
                    if (!TypeDic.Contains(ti))
                    {
                        TypeDic.Add(ti);
                    }
                    if (ObjLevel > 0)
                    {
                        if (!ObjDic.ContainsKey(ti))
                        {
                            ObjDic[ti] = new HashSet <MEDMObj>();
                        }
                        HashSet <MEDMObj> ObjHash = ObjDic[ti];
                        if (!ObjHash.Contains((MEDMObj)value))
                        {
                            ObjHash.Add((MEDMObj)value);
                        }
                    }
                    else
                    {
                        if (!ObjList.Contains((MEDMObj)value))
                        {
                            ObjList.Add((MEDMObj)value);
                        }
                    }

                    {
                        if (ObjLevel <= 0)
                        {
                            writer.WriteStartObject();
                            writer.WritePropertyName("_type");
                            writer.WriteValue(ti.Name);
                        }
                        PropertyInfo[] piList = ti.GetProperties();
                        foreach (PropertyInfo pi in piList)
                        {
                            if (pi.CanRead)
                            {
                                string   n  = pi.Name;
                                object   v  = pi.GetValue(value);
                                TypeInfo pt = pi.PropertyType.GetTypeInfo();
                                if (pi.GetCustomAttribute(typeof(JsonIgnoreAttribute)) == null && pi.GetCustomAttribute(typeof(IgnoreAttribute)) == null)
                                {
                                    if (pt.IsSubclassOf(typeof(MEDMObj)))
                                    {
                                        if (v != null)
                                        {
                                            //writer.WritePropertyName(n.Substring(0, 1).ToLower() + n.Substring(1));
                                            //writer.WriteStartObject();
                                            //writer.WritePropertyName("_type");
                                            //writer.WriteValue(pt.Name);
                                            //writer.WritePropertyName("id");
                                            //object id = (v as MEDMObj).GetId();
                                            //if (id is string) id = ((string)id).ToUpper().Trim();
                                            //writer.WriteValue(id);
                                            //writer.WriteEndObject();
                                            ObjLevel++;
                                            WriteJson(writer, v, serializer);
                                            ObjLevel--;
                                        }
                                    }
                                    else if (ObjLevel <= 0)
                                    {
                                        //if (n.ToLower().EndsWith("id"))
                                        //{
                                        //    string n1 = n.Substring(0, n.Length - 2);
                                        //    if (ti.GetProperty(n1) != null)
                                        //    {
                                        //        continue;
                                        //    }
                                        //}
                                        if (v != null && (!v.Equals(GetDefaulValue(v.GetType())) || n.ToLower() == "id"))
                                        {
                                            writer.WritePropertyName(n.Substring(0, 1).ToLower() + n.Substring(1));
                                            WriteJson(writer, v, serializer);
                                        }
                                    }
                                }
                            }
                        }
                        if (ObjLevel <= 0)
                        {
                            writer.WriteEndObject();
                        }
                    }
                }
                else if (value is IList)
                {
                    if (ListLevel <= 0)
                    {
                        writer.WriteStartArray();
                        foreach (object v1 in (IList)value)
                        {
                            if (v1 is MEDMObj && ListLevel > 0)
                            {
                                writer.WriteStartObject();
                                writer.WritePropertyName("_type");
                                writer.WriteValue(v1.GetType().Name);
                                writer.WritePropertyName("id");
                                object id = (v1 as MEDMObj).GetId();
                                if (id is string)
                                {
                                    id = ((string)id).ToUpper().Trim();
                                }
                                writer.WriteValue(id);
                                writer.WriteEndObject();
                                ListLevel++;
                                ObjLevel++;
                                WriteJson(writer, v1, serializer);
                                ObjLevel--;
                                ListLevel--;
                            }
                            else
                            {
                                ListLevel++;
                                WriteJson(writer, v1, serializer);
                                ListLevel--;
                            }
                        }
                        writer.WriteEndArray();
                    }
                    else
                    {
                        writer.WriteStartObject();
                        int i = 0;
                        foreach (object v1 in (IList)value)
                        {
                            if (v1 is MEDMObj && ListLevel > 0)
                            {
                                object id = (v1 as MEDMObj).GetId();
                                if (id is string)
                                {
                                    id = ((string)id).ToUpper().Trim();
                                }
                                writer.WritePropertyName(id.ToString());
                                writer.WriteStartObject();
                                writer.WritePropertyName("_type");
                                writer.WriteValue(v1.GetType().Name);
                                writer.WritePropertyName("id");
                                writer.WriteValue(id);
                                writer.WriteEndObject();
                                ListLevel++;
                                ObjLevel++;
                                WriteJson(writer, v1, serializer);
                                ObjLevel--;
                                ListLevel--;
                            }
                            else
                            {
                                ListLevel++;
                                writer.WritePropertyName(i.ToString());
                                WriteJson(writer, v1, serializer);
                                ListLevel--;
                            }
                            i++;
                        }
                        writer.WriteEndObject();
                    }
                }
                else if (ti.IsClass && !(value is string))
                {
                    writer.WriteStartObject();
                    writer.WritePropertyName("_type");
                    writer.WriteValue(ti.Name);
                    foreach (PropertyInfo pi in ti.GetProperties())
                    {
                        if (pi.CanRead)
                        {
                            string   n  = pi.Name;
                            object   v  = pi.GetValue(value);
                            TypeInfo pt = pi.PropertyType.GetTypeInfo();
                            if (pi.GetCustomAttribute(typeof(JsonIgnoreAttribute)) == null && pi.GetCustomAttribute(typeof(IgnoreAttribute)) == null)
                            {
                                if (pt.IsSubclassOf(typeof(MEDMObj)))
                                {
                                    WriteJson(writer, v, serializer);
                                }
                                else
                                {
                                    if (v != null && (!v.Equals(GetDefaulValue(v.GetType())) || n.ToLower() == "id"))
                                    {
                                        writer.WritePropertyName(n.Substring(0, 1).ToLower() + n.Substring(1));
                                        WriteJson(writer, v, serializer);
                                    }
                                }
                            }
                        }
                    }
                    if (value is MJsonData /* && ObjDic.Count > 0 && TypeDic.Count>0 && ObjLevel <= 0*/)
                    {
                        writer.WritePropertyName("dic");
                        writer.WriteStartObject();
                        foreach (KeyValuePair <TypeInfo, HashSet <MEDMObj> > ObjHash in ObjDic)
                        {
                            // Не нужно серилизовывать объекты конфигурации
                            if (!ObjHash.Key.IsSubclassOf(typeof(MEDMCfgObj)))
                            {
                                bool f = false;
                                foreach (MEDMObj obj in ObjHash.Value)
                                {
                                    if (!ObjList.Contains(obj))
                                    {
                                        if (!f)
                                        {
                                            f = true;
                                            writer.WritePropertyName(ObjHash.Key.Name);
                                            writer.WriteStartObject();
                                        }
                                        object id = obj.GetId();
                                        if (id is string)
                                        {
                                            id = ((string)id).ToUpper();
                                        }
                                        writer.WritePropertyName(id.ToString());
                                        WriteJson(writer, obj, serializer);
                                    }
                                }
                                if (f)
                                {
                                    writer.WriteEndObject();
                                }
                            }
                        }
                        writer.WriteEndObject();

                        /*
                         * writer.WritePropertyName("$stub");
                         * writer.WriteStartObject();
                         * foreach (TypeInfo t in TypeDic)
                         * {
                         *  writer.WritePropertyName(t.Name);
                         *  writer.WriteStartObject();
                         *  foreach (PropertyInfo pi in t.GetProperties())
                         *  {
                         *      if (pi.CanRead)
                         *      {
                         *          string n = pi.Name;
                         *          TypeInfo pt = pi.PropertyType.GetTypeInfo();
                         *          if (pi.GetCustomAttribute(typeof(JsonIgnoreAttribute)) == null && pi.GetCustomAttribute(typeof(IgnoreAttribute)) == null)
                         *          {
                         *              writer.WritePropertyName(n.Substring(0, 1).ToLower() + n.Substring(1));
                         *              if (pt.IsSubclassOf(typeof(MEDMObj)))
                         *              {
                         *                  writer.WriteStartObject();
                         *                  writer.WritePropertyName("_type");
                         *                  writer.WriteValue(pt.Name);
                         *                  writer.WriteEndObject();
                         *              }
                         *              else
                         *              {
                         *                  writer.WriteValue(GetDefaulValue(pi.PropertyType));
                         *              }
                         *          }
                         *      }
                         *  }
                         *  writer.WriteEndObject();
                         * }
                         * writer.WriteEndObject();
                         */
                    }
                    writer.WriteEndObject();
                }
                else
                {
                    writer.WriteValue(value);
                }
            }
        }
Example #55
0
        public IRequest Marshall(CountPendingDecisionTasksRequest countPendingDecisionTasksRequest)
        {
            IRequest request = new DefaultRequest(countPendingDecisionTasksRequest, "AmazonSimpleWorkflow");
            string   target  = "SimpleWorkflowService.CountPendingDecisionTasks";

            request.Headers["X-Amz-Target"] = target;

            request.Headers["Content-Type"] = "application/x-amz-json-1.0";


            string uriResourcePath = "";

            if (uriResourcePath.Contains("?"))
            {
                int    queryPosition = uriResourcePath.IndexOf("?", StringComparison.OrdinalIgnoreCase);
                string queryString   = uriResourcePath.Substring(queryPosition + 1);
                uriResourcePath = uriResourcePath.Substring(0, queryPosition);

                foreach (string s in queryString.Split('&', ';'))
                {
                    string[] nameValuePair = s.Split('=');
                    if (nameValuePair.Length == 2 && nameValuePair[1].Length > 0)
                    {
                        request.Parameters.Add(nameValuePair[0], nameValuePair[1]);
                    }
                    else
                    {
                        request.Parameters.Add(nameValuePair[0], null);
                    }
                }
            }

            request.ResourcePath = uriResourcePath;


            using (StringWriter stringWriter = new StringWriter(System.Globalization.CultureInfo.InvariantCulture))
            {
                JsonWriter writer = new JsonWriter(stringWriter);
                writer.WriteObjectStart();

                if (countPendingDecisionTasksRequest != null && countPendingDecisionTasksRequest.IsSetDomain())
                {
                    writer.WritePropertyName("domain");
                    writer.Write(countPendingDecisionTasksRequest.Domain);
                }

                if (countPendingDecisionTasksRequest != null)
                {
                    TaskList taskList = countPendingDecisionTasksRequest.TaskList;
                    if (taskList != null)
                    {
                        writer.WritePropertyName("taskList");
                        writer.WriteObjectStart();
                        if (taskList != null && taskList.IsSetName())
                        {
                            writer.WritePropertyName("name");
                            writer.Write(taskList.Name);
                        }
                        writer.WriteObjectEnd();
                    }
                }

                writer.WriteObjectEnd();

                string snippet = stringWriter.ToString();
                request.Content = System.Text.Encoding.UTF8.GetBytes(snippet);
            }


            return(request);
        }
Example #56
0
        public IRequest Marshall(GetItemRequest getItemRequest)
        {
            IRequest request = new DefaultRequest(getItemRequest, "AmazonDynamoDBv2");
            string   target  = "DynamoDB_20120810.GetItem";

            request.Headers["X-Amz-Target"] = target;
            request.Headers["Content-Type"] = "application/x-amz-json-1.0";



            string uriResourcePath = "";

            if (uriResourcePath.Contains("?"))
            {
                string queryString = uriResourcePath.Substring(uriResourcePath.IndexOf("?") + 1);
                uriResourcePath = uriResourcePath.Substring(0, uriResourcePath.IndexOf("?"));

                foreach (string s in queryString.Split('&', ';'))
                {
                    string[] nameValuePair = s.Split('=');
                    if (nameValuePair.Length == 2 && nameValuePair[1].Length > 0)
                    {
                        request.Parameters.Add(nameValuePair[0], nameValuePair[1]);
                    }
                    else
                    {
                        request.Parameters.Add(nameValuePair[0], null);
                    }
                }
            }

            request.ResourcePath = uriResourcePath;


            using (StringWriter stringWriter = new StringWriter())
            {
                JsonWriter writer = new JsonWriter(stringWriter);
                writer.WriteObjectStart();

                if (getItemRequest != null && getItemRequest.IsSetTableName())
                {
                    writer.WritePropertyName("TableName");
                    writer.Write(getItemRequest.TableName);
                }
                if (getItemRequest != null)
                {
                    if (getItemRequest.Key != null && getItemRequest.Key.Count > 0)
                    {
                        writer.WritePropertyName("Key");
                        writer.WriteObjectStart();
                        foreach (string getItemRequestKeyKey in getItemRequest.Key.Keys)
                        {
                            AttributeValue keyListValue;
                            bool           keyListValueHasValue = getItemRequest.Key.TryGetValue(getItemRequestKeyKey, out keyListValue);
                            writer.WritePropertyName(getItemRequestKeyKey);

                            writer.WriteObjectStart();
                            if (keyListValue != null && keyListValue.IsSetS())
                            {
                                writer.WritePropertyName("S");
                                writer.Write(keyListValue.S);
                            }
                            if (keyListValue != null && keyListValue.IsSetN())
                            {
                                writer.WritePropertyName("N");
                                writer.Write(keyListValue.N);
                            }
                            if (keyListValue != null && keyListValue.IsSetB())
                            {
                                writer.WritePropertyName("B");
                                writer.Write(StringUtils.FromMemoryStream(keyListValue.B));
                            }

                            if (keyListValue != null && keyListValue.SS != null && keyListValue.SS.Count > 0)
                            {
                                List <string> sSList = keyListValue.SS;
                                writer.WritePropertyName("SS");
                                writer.WriteArrayStart();

                                foreach (string sSListValue in sSList)
                                {
                                    writer.Write(StringUtils.FromString(sSListValue));
                                }

                                writer.WriteArrayEnd();
                            }

                            if (keyListValue != null && keyListValue.NS != null && keyListValue.NS.Count > 0)
                            {
                                List <string> nSList = keyListValue.NS;
                                writer.WritePropertyName("NS");
                                writer.WriteArrayStart();

                                foreach (string nSListValue in nSList)
                                {
                                    writer.Write(StringUtils.FromString(nSListValue));
                                }

                                writer.WriteArrayEnd();
                            }

                            if (keyListValue != null && keyListValue.BS != null && keyListValue.BS.Count > 0)
                            {
                                List <MemoryStream> bSList = keyListValue.BS;
                                writer.WritePropertyName("BS");
                                writer.WriteArrayStart();

                                foreach (MemoryStream bSListValue in bSList)
                                {
                                    writer.Write(StringUtils.FromMemoryStream(bSListValue));
                                }

                                writer.WriteArrayEnd();
                            }
                            writer.WriteObjectEnd();
                        }
                        writer.WriteObjectEnd();
                    }
                }

                if (getItemRequest != null && getItemRequest.AttributesToGet != null && getItemRequest.AttributesToGet.Count > 0)
                {
                    List <string> attributesToGetList = getItemRequest.AttributesToGet;
                    writer.WritePropertyName("AttributesToGet");
                    writer.WriteArrayStart();

                    foreach (string attributesToGetListValue in attributesToGetList)
                    {
                        writer.Write(StringUtils.FromString(attributesToGetListValue));
                    }

                    writer.WriteArrayEnd();
                }
                if (getItemRequest != null && getItemRequest.IsSetConsistentRead())
                {
                    writer.WritePropertyName("ConsistentRead");
                    writer.Write(getItemRequest.ConsistentRead);
                }
                if (getItemRequest != null && getItemRequest.IsSetReturnConsumedCapacity())
                {
                    writer.WritePropertyName("ReturnConsumedCapacity");
                    writer.Write(getItemRequest.ReturnConsumedCapacity);
                }

                writer.WriteObjectEnd();

                string snippet = stringWriter.ToString();
                request.Content = System.Text.Encoding.UTF8.GetBytes(snippet);
            }


            return(request);
        }
Example #57
0
        /// <summary>
        /// Return a JSON represenation of the current metrics
        /// </summary>
        /// <returns></returns>
        public string ToJSON()
        {
            if (!this.IsEnabled)
            {
                return("{ }");
            }

            var sb = new StringBuilder();
            var jw = new JsonWriter(sb);

            jw.WriteObjectStart();
            jw.WritePropertyName("properties");
            jw.WriteObjectStart();
            foreach (var kvp in this.Properties)
            {
                jw.WritePropertyName(kvp.Key.ToString());
                var properties = kvp.Value;
                if (properties.Count > 1)
                {
                    jw.WriteArrayStart();
                }
                foreach (var obj in properties)
                {
                    if (obj == null)
                    {
                        jw.Write(null);
                    }
                    else
                    {
                        jw.Write(obj.ToString());
                    }
                }
                if (properties.Count > 1)
                {
                    jw.WriteArrayEnd();
                }
            }
            jw.WriteObjectEnd();
            jw.WritePropertyName("timings");
            jw.WriteObjectStart();
            foreach (var kvp in this.Timings)
            {
                jw.WritePropertyName(kvp.Key.ToString());
                var timings = kvp.Value;
                if (timings.Count > 1)
                {
                    jw.WriteArrayStart();
                }
                foreach (var timing in kvp.Value)
                {
                    if (timing.IsFinished)
                    {
                        jw.Write(timing.ElapsedTime.TotalMilliseconds);
                    }
                }
                if (timings.Count > 1)
                {
                    jw.WriteArrayEnd();
                }
            }
            jw.WriteObjectEnd();
            jw.WritePropertyName("counters");
            jw.WriteObjectStart();
            foreach (var kvp in this.Counters)
            {
                jw.WritePropertyName(kvp.Key.ToString());
                jw.Write(kvp.Value);
            }
            jw.WriteObjectEnd();
            jw.WriteObjectEnd();
            return(sb.ToString());
        }
Example #58
0
 private static void writePropertyValue(JsonWriter generator, string propertyName, string value)
 {
     generator.WritePropertyName(propertyName);
     generator.Write(value);
 }
Example #59
0
 protected override void PerformWritePropertyName(string name)
 {
     _jsonWriter.WritePropertyName(name);
 }
Example #60
0
        private void WriteGeometry(JsonWriter writer)
        {
            XbimMatrix3D globalTrans = GetGlobalModelTransform();
            //write out the material nodes and then the instances for each material
            Dictionary <int, XbimTexture> styles = _context.SurfaceStyles().ToDictionary(s => s.DefinedObjectId);

            foreach (var instanceGroup in _context.ShapeInstancesGroupByStyle())
            {
                if (!instanceGroup.Any())
                {
                    continue;                       //skip emmpty instances;
                }
                int         styleId = instanceGroup.Key;
                XbimTexture style   = styles[styleId];
                writer.WriteStartObject(); //Material node
                {
                    writer.WritePropertyName("type"); writer.WriteValue("material");
                    writer.WritePropertyName("id"); writer.WriteValue("M" + styleId);
                    writer.WritePropertyName("color");
                    writer.WriteStartObject(); //begin color
                    {
                        writer.WritePropertyName("r"); writer.WriteValue(style.ColourMap[0].Red);
                        writer.WritePropertyName("g"); writer.WriteValue(style.ColourMap[0].Green);
                        writer.WritePropertyName("b"); writer.WriteValue(style.ColourMap[0].Blue);
                    } writer.WriteEndObject(); //end color
                    writer.WritePropertyName("alpha"); writer.WriteValue(style.ColourMap[0].Alpha);
                    //all instances of this style
                    writer.WritePropertyName("nodes"); //beginning of the instance nodes
                    writer.WriteStartArray();
                    foreach (var shapeInstance in instanceGroup)
                    {
                        writer.WriteStartObject();                                //start of instance transform
                        {
                            if (_maps.Contains(shapeInstance.ShapeGeometryLabel)) //it is a reference
                            {
                                //write the transform
                                writer.WritePropertyName("type"); //geometry node
                                writer.WriteValue("matrix");
                                writer.WritePropertyName("id");
                                writer.WriteValue("I" + shapeInstance.InstanceLabel);
                                writer.WritePropertyName("elements");
                                XbimMatrix3D m = XbimMatrix3D.Multiply(shapeInstance.Transformation, globalTrans);
                                WriteMatrix(writer, m);
                                writer.WritePropertyName("nodes"); //beginning of the instance nodes
                                writer.WriteStartArray();
                                //write the map
                                writer.WriteStartObject();            //start of map
                                {
                                    writer.WritePropertyName("type"); //geometry node
                                    writer.WriteValue("geometry");
                                    writer.WritePropertyName("coreId");
                                    writer.WriteValue("L" + shapeInstance.ShapeGeometryLabel);
                                } writer.WriteEndObject(); //end of map
                                writer.WriteEndArray();    //end of instance tranform nodes
                            }
                            else //write the actual geometry
                            {
                                writer.WritePropertyName("type");      //geometry node
                                writer.WriteValue("geometry");
                                writer.WritePropertyName("primitive"); //primitive: "
                                writer.WriteValue("triangles");
                                writer.WritePropertyName("id");
                                writer.WriteValue("I" + shapeInstance.InstanceLabel);
                                WriteShapeGeometry(writer, _context.ShapeGeometry(shapeInstance), XbimMatrix3D.Multiply(shapeInstance.Transformation, globalTrans));
                            }
                        } writer.WriteEndObject(); //end of instance transform
                    }
                    writer.WriteEndArray();        //end of instance transform nodes
                } writer.WriteEndObject();         // end of the material node
            }
        }