示例#1
0
        public override void GenerateHtml()
        {
            JsonObject output = new JsonObject();
            string sProfile = Hm.Request("profile");
            if (!Str.IsEmpty(sProfile))
            {
                CCProfile prf = CC.Current.Profiles[sProfile];
                if (prf != null)
                {
                    JsonArray sarr = output.SetArray("Scopes") as JsonArray;
                    foreach (CCScope scope in prf.Scopes)
                    {
                        sarr.EltAdd(scope.Name);
                    }


                    JsonArray arr = output.SetArray("MetaDataKeys") as JsonArray;
                    List<XDoc> MetaDataKeys = prf.Doc.EltList("MetaDataDef");
                    foreach (XDoc metakey in MetaDataKeys)
                    {
                        if (bool.Parse(metakey.Value("Active")))
                        {
                            JsonObject key = arr.EltAddObject() as JsonObject;

                            key.Set("Name", metakey.Value("EntityName"));
                            key.Set("MaxDisplay", int.Parse(metakey.Value("Max")));
                            key.Set("MinimumOccurrence", int.Parse(metakey.Value("Threshold")));
                        }
                    }

                    JsonArray relatedarr = output.SetArray("RelatedTerms") as JsonArray;
                    List<XDoc> RelatedKeys = prf.Doc.EltList("RelatedTermsDef");
                    foreach (XDoc metakey in RelatedKeys)
                    {
                        if (bool.Parse(metakey.Value("Active")))
                        {
                            JsonObject key = relatedarr.EltAddObject() as JsonObject;

                            key.Set("Name", metakey.Value("EntityName"));
                            key.Set("MaxDisplay", int.Parse(metakey.Value("Max")));
                            key.Set("MinimumOccurrence", int.Parse(metakey.Value("Threshold")));
                        }
                    }

                    JsonArray peoplearr = output.SetArray("PeopleDataKeys") as JsonArray;
                    List<XDoc> PeopleDataKeys = prf.Doc.EltList("PeopleDataDef");
                    foreach (XDoc pmetakey in PeopleDataKeys)
                    {
                        if (bool.Parse(pmetakey.Value("Active")))
                        {
                            JsonObject key = peoplearr.EltAddObject() as JsonObject;

                            key.Set("Name", pmetakey.Value("EntityName"));
                            key.Set("MaxDisplay", int.Parse(pmetakey.Value("Max")));
                            key.Set("MinimumOccurrence", int.Parse(pmetakey.Value("Threshold")));
                        }
                    }

                    JsonArray langarr = output.SetArray("LanguageOptions") as JsonArray;
                    List<XDoc> Languages = prf.Doc.EltList("LanguageOptions");
                    foreach (XDoc metakey in Languages )
                    {
                        if (bool.Parse(metakey.Value("Active")))
                        {
                            JsonObject key = langarr.EltAddObject() as JsonObject;

                            key.Set("label", metakey.Value("LanguageName"));
                            key.Set("value", metakey.Value("LanguageValue"));
                        }
                    }
                }

                output.SetValue("ChatterPollID", prf.Doc.Value("ChatterPollID"));
                output.SetValue("FeedbackGroupId", prf.Doc.Value("FeedbackGroupID"));
                output.SetValue("BestBetGroupId", prf.Doc.Value("BestBetGroupID"));
                output.SetValue("MaxAuthors", prf.Doc.Value("MaxAuthors"));
                output.SetValue("SessionTimeout", prf.Doc.Value("SessionTimeOut"));
                output.SetValue("MaxRecentSearches", prf.Doc.Value("MaxRecentSearches"));
                
            }
            Hm.SetContentType("application/json");
            Hm.Write(Json.Serialize(output, true));
            if (!Str.IsEmpty(Hm.Request("callback")))
                Hm.Write(")");
        }