public ConvertResponse Convert(RenderContext context, JObject result) { var page = context.GetItem <Page>(); var sitedb = context.WebSite.SiteDb(); string menuname = Lib.Helper.JsonHelper.GetString(result, "name"); menuname = GetMenuName(sitedb, menuname); var data = Lib.Helper.JsonHelper.GetObject(result, "Data"); //var newmenu = Newtonsoft.Json.JsonConvert.DeserializeObject<Menu>(data.ToString()); var newmenu = Lib.Helper.JsonHelper.Deserialize <Menu>(data.ToString()); newmenu.Name = menuname; newmenu.Id = default(Guid); EnSureParentId(newmenu); string koobooid = Lib.Helper.JsonHelper.GetString(result, "KoobooId"); if (string.IsNullOrEmpty(koobooid)) { koobooid = DetectKoobooId(page.Dom, newmenu); } if (string.IsNullOrEmpty(koobooid)) { return(null); } var response = new ConvertResponse { IsSuccess = true, ComponentNameOrId = menuname, Tag = "<menu id='" + menuname + "'></menu>", KoobooId = koobooid }; if (page == null) { sitedb.Menus.AddOrUpdate(newmenu); return(response); } if (sitedb.WebSite.ContinueConvert) { var DomNode = DomService.GetElementByKoobooId(page.Dom, koobooid); var DomElement = DomNode as Kooboo.Dom.Element; if (DomElement != null) { var elementpaths = Kooboo.Sites.Service.DomService.GetElementPath(DomElement as Kooboo.Dom.Element); sitedb.ContinueConverter.AddConverter(this.Type, page.Id, response.Tag, response.ComponentNameOrId, koobooid, elementpaths, DomElement.tagName); // var OtherPages = sitedb.Pages.All().Where(o => o.Id != page.Id && !o.HasLayout).ToList(); //foreach (var item in OtherPages) //{ // ContinueConvert(sitedb, page.Id, response.Tag, koobooid, item, null, DomElement.ParentPathHash, newmenu); //} } } sitedb.Menus.AddOrUpdate(newmenu); // if (!sitedb.WebSite.ContinueConvert) // { // sitedb.WebSite.ContinueConvert = true; // Kooboo.Data.GlobalDb.WebSites.AddOrUpdate(sitedb.WebSite); // } return(response); }