public static void Test2(MongoDatabase db) { var d = new Dictionary<string, object>(); var pp = new PortalPage { Title = "This is my test", Id = "test1" }; var pc = new PortalPageColumn(); pp.Columns.Add(pc); pc.Config["width"] = 200; d["open"] = "open listener"; d["close"] = "close listener"; d["interval"] = 500; pc.Config["listeners"] = d; d = new Dictionary<string, object>(); d["open"] = "open listener"; d["close"] = "close listener"; d["interval"] = 500; pc.Config["listeners"] = d; var pt = new Portlet { Title = "test portlet 1", PortletClass = "GraphImage" }; pt.Config["width"] = 200; pt.Config["height"] = 300; pt.Config["listeners"] = d; pc.Portlets.Add(pt); db.GetCollection<PortalPage>().Save(pp); var pp2 = db.GetCollection<PortalPage>().FindOneById(pp.Id); Console.WriteLine("p2: {0}", pp2.Title); }
static void TestDeser() { var d = new Dictionary<string, object>(); var pp = new PortalPage { Title = "This is my test", Id = "test1" }; var pc = new PortalPageColumn(); pp.Columns.Add(pc); pc.Config["width"] = 200; d["open"] = "open listener"; d["close"] = "close listener"; d["interval"] = 500; pc.Config["listeners"] = d; d = new Dictionary<string, object>(); d["open"] = "open listener"; d["close"] = "close listener"; d["interval"] = 500; pc.Config["listeners"] = d; var pt = new Portlet { Title = "test portlet 1", PortletClass = "GraphImage" }; pt.Config["width"] = 200; pt.Config["height"] = 300; pt.Config["listeners"] = new Dictionary<string, object>(d); var l = new List<object>(); var d2 = new Dictionary<string, object>(); d2["name"] = "ko"; d2["value"] = 289; l.Add(d2); l.Add(new Dictionary<string, object>(d2)); pt.Config["dataFields"] = l; pc.Portlets.Add(pt); var sw = new StringWriter(); var bw = BsonWriter.Create(sw); BsonSerializer.Serialize(bw, pp); bw.Flush(); Console.WriteLine("S1: {0}", sw.ToString()); var p2 = BsonSerializer.Deserialize<PortalPage>(BsonReader.Create(new StringReader(sw.ToString()))); }
public IList<Portlet> SearchAvailablePortlets(string query, int? start, int? limit) { List<Portlet> ret = new List<Portlet>(); var lst = Db.FindAll<GraphDefinition>().ToList(); foreach (var gd in lst) { Portlet p = new Portlet(); p.Id = gd.Id; p.Title = gd.Title; p.Config = new Dictionary<string, object>(); p.Config["graphDefinitionId"] = gd.Id; p.Config["height"] = 300; p.PortletClass = "CogMon.ui.RrdGraphPortlet"; ret.Add(p); } return ret; }
public PortalPage AddNewPortletToPage(string pageId, int column, Portlet portlet) { portlet.Config = Util.JsonUtil.NormalizeJsonObject(portlet.Config); var p = Db.GetCollection<PortalPage>().FindOneById(pageId); if (!PageEditAllowed(p)) throw new Exception("Page not editable"); if (p.Columns.Count == 0) { p.Columns.Add(new PortalPageColumn { }); } PortalPageColumn pc = p.Columns[0]; if (column == -1) { foreach (var pcol in p.Columns) { if (pcol.Portlets.Count < pc.Portlets.Count) { pc = pcol; } } } else { pc = p.Columns[column]; } portlet.Id = (p.IdGen++).ToString(); pc.Portlets.Add(portlet); Db.GetCollection<PortalPage>().Save(p); VerifySavedPage(p); return UpdatePageBeforeReturning(p); }