Beispiel #1
0
        protected override void WriteJsonInternal(JsonWriter jw, string mode) {
            mode = mode ?? "";
            base.WriteJsonInternal(jw, mode);
            jw.WriteProperty("onform",OnForm,true);
            jw.WriteProperty("onquery",OnQuery,true);
            jw.WriteProperty("toolview",ToolView,true);
            if (!mode.Contains("noagents")) {
                jw.OpenProperty("agents");
                jw.OpenArray();
                foreach (var agentDefinition in Agents) {
                    jw.WriteObject(agentDefinition, mode);
                }

                jw.CloseArray();
                jw.CloseProperty();
                
            }
            if (!mode.Contains("noparams"))
            {
                jw.WriteProperty("parameters", Parameters.Select(_=>_.Value as object).ToArray());
            }
        }
Beispiel #2
0
public void WriteAsJson(TextWriter output, string mode, ISerializationAnnotator annotator, bool pretty = false, int level = 0) {
            var jw = new JsonWriter(output,pretty:pretty,level:level);
            jw.OpenObject();
            if (0 != Meta.Count) {
                jw.WriteProperty("meta",Meta);
            }
            if (null == Parent && null != Collectors && 0!=Collectors.Length) {
                jw.WriteProperty("collectors", Collectors.OfType<ICollector>().Select(
                    c => new
                    {
                        key = c.Key,
                        name = c.Name ?? c.Key,
                        shortname = c.ShortName ?? c.Name ?? c.Key,
                        group = c.Group,
                        condition = c.Condition
                    }.jsonify()).ToArray());
            }
            if (null == Parent && null != Routs && 0 != Routs.Length) {
                jw.WriteProperty("routs", Routs.Select(
                    c =>
                        new
                        {
                            key = c.Key ?? "nokey",
                            name = c.Name ?? c.Key,
                            shortname = c.ShortName ?? c.Name ?? c.Key,
                            level = c.Level,
                            parent = null == c.Parent ? "" : c.Parent.Key,
                        }.jsonify()).ToArray());
                
            }
            jw.WriteProperty("id",Id);
            jw.WriteProperty("isbucket",IsBucket);
            if (null != RouteKey) {
                jw.WriteProperty("key",RouteKey.Key);
                jw.WriteProperty("name",RouteKey.Name);
                jw.WriteProperty("sortkey",RouteKey.SortKey);
                jw.WriteProperty("comment",RouteKey.Comment);
            }
            jw.OpenProperty("values");
            jw.OpenArray();
            foreach (var value in Values) {
                jw.WriteObject(new {key=value.Key,value=value.Value});
            }
            jw.CloseArray();
            jw.CloseProperty();
            

            if (null != _children && 0 != _children.Count) {
                jw.OpenProperty("aggs");
                jw.OpenArray();
                foreach (var node in Children) {
                    jw.WriteObject(node.Value);
                }
                jw.CloseArray();
                jw.CloseProperty();
            }
            jw.CloseObject();
        }