Exemplo n.º 1
0
        public void WriteInput(OperatorPart opPart)
        {
            Writer.WriteStartObject();

            Writer.WriteValue("Name", opPart.Name);
            Writer.WriteValue("ID", opPart.ID);
            Writer.WriteValue("Type", opPart.Type);
            Writer.WriteValue("Value", ValueUtilities.GetValueForTypeFromContext(opPart.Type, opPart.Eval(new OperatorPartContext())));

            Writer.WriteEndObject();
        }
Exemplo n.º 2
0
        private void WriteOperatorInstanceProperties(MetaOperator parentOp, Guid metaOpInstanceID, MetaOperator metaOp, MetaOperator.InstanceProperties opProperties)
        {
            Writer.WriteStartObject();

            Writer.WriteValue("Name", opProperties.Name);
            Writer.WriteValue("PosX", opProperties.Position.X);
            Writer.WriteValue("PosY", opProperties.Position.Y);
            Writer.WriteValue("Width", opProperties.Width);
            Writer.WriteValue("Visible", opProperties.Visible);
            Writer.WriteValue("Disabled", opProperties.Disabled);

            Writer.WritePropertyName("Inputs");
            Writer.WriteStartArray();
            foreach (var inputValue in opProperties.InputValues)
            {
                var inputID        = inputValue.Key;
                var inputValueFunc = inputValue.Value;

                var metaInput = (from input in metaOp.Inputs
                                 where input.ID == inputValue.Key
                                 select input).SingleOrDefault();

                bool isDefault = ((metaInput != null) && (inputValueFunc == metaInput.DefaultFunc)) ||
                                 parentOp.ExistsConnectionToInput(metaOpInstanceID, metaInput.ID);

                if (!isDefault)
                {
                    Writer.WriteStartObject();
                    Writer.WriteValue("ID", inputID);
                    var inputValueValue = (inputValueFunc as Utilities.ValueFunction).Value;
                    var inputValueType  = inputValueValue.Type;

                    Writer.WriteValue("Type", inputValueType);

                    //write value multi lined
                    var value         = ValueUtilities.GetValueForTypeFromContext(inputValueType, inputValueValue.SetValueInContext(new OperatorPartContext()));
                    var splittedValue = value.Split(new string[] { "\n" }, StringSplitOptions.None);
                    Writer.WritePropertyName("Value");
                    Writer.WriteStartArray();
                    foreach (var valueLine in splittedValue)
                    {
                        Writer.WriteValue(valueLine);
                    }
                    Writer.WriteEndArray();
                    Writer.WriteEndObject();
                }
            }
            Writer.WriteEndArray();

            Writer.WritePropertyName("States");
            Writer.WriteStartArray();
            foreach (var stateEntry in opProperties.OperatorPartStates)
            {
                Writer.WriteStartObject();
                Writer.WriteValue("ID", stateEntry.Key);
                Writer.WritePropertyName("State");
                var s = new JsonSerializer();
                s.Serialize(Writer, stateEntry.Value);
                Writer.WriteEndObject();
            }
            Writer.WriteEndArray();

            Writer.WriteEndObject();
        }