private MetaOutput BuildMetaOutput(MetaManager metaManager, JToken jsonOutput) { var metaInstanceID = Guid.Parse(jsonOutput["MetaInstanceID"].Value <string>()); var name = jsonOutput["Name"].Value <string>(); var metaIDOfOpPart = Guid.Parse(jsonOutput["MetaID"].Value <string>()); var opPart = metaManager.GetMetaOperatorPart(metaIDOfOpPart); return(new MetaOutput(metaInstanceID, name, opPart)); }
private MetaInput BuildMetaInput(MetaManager metaManager, JToken jsonInput) { var metaInstanceID = Guid.Parse(jsonInput["MetaInstanceID"].Value <string>()); var name = jsonInput["Name"].Value <string>(); var metaIDOfOpPart = Guid.Parse(jsonInput["MetaID"].Value <string>()); var opPart = metaManager.GetMetaOperatorPart(metaIDOfOpPart); // read default value - can be multi line value var defaultValueString = string.Empty; var defaultValueEntry = jsonInput["DefaultValue"]["Value"]; if (defaultValueEntry is JValue) { defaultValueString = defaultValueEntry.Value <string>(); } else { var lines = new List <String>(); foreach (var valueLine in defaultValueEntry) { lines.Add(valueLine.Value <string>()); } defaultValueString = string.Join("\n", lines); } var defaultValue = ValueUtilities.CreateValue(jsonInput["DefaultValue"]["Type"].Value <string>(), defaultValueString); var isMultiInput = jsonInput["IsMultiInput"].Value <bool>(); var relevance = (MetaInput.RelevanceType)Enum.Parse(typeof(MetaInput.RelevanceType), jsonInput["Relevance"].Value <string>()); var description = jsonInput["Description"].Value <string>(); var min = jsonInput["Min"].Value <float>(); var max = jsonInput["Max"].Value <float>(); var scale = jsonInput["Scale"].Value <float>(); var scaleType = (MetaInput.Scaling)Enum.Parse(typeof(MetaInput.Scaling), jsonInput["ScaleType"].Value <string>()); var enumEntries = (from enumEntry in jsonInput["EnumValues"] let metaOpPart = BuildEnumEntry(enumEntry) select metaOpPart).ToList(); return(new MetaInput(metaInstanceID, name, opPart, defaultValue, isMultiInput) { Relevance = relevance, Description = description, Min = min, Max = max, Scale = scale, ScaleType = scaleType, EnumValues = enumEntries }); }