コード例 #1
0
        private JObject ProcessItem(MenuItemsListPart originalItems, JObject item)
        {
            var contentItem = GetMenuItemAt(originalItems, item["index"].ToString().Split('-').Select(x => Convert.ToInt32(x)).ToArray());

            var children = item["children"] as JArray;

            if (children != null)
            {
                var menuItems = new JArray();

                for (var i = 0; i < children.Count; i++)
                {
                    menuItems.Add(ProcessItem(originalItems, children[i] as JObject));
                    contentItem["MenuItemsListPart"] = new JObject(new JProperty("MenuItems", menuItems));
                }
            }

            return(contentItem);
        }
コード例 #2
0
        /// <summary>
        /// Clone the content items at the specific index.
        /// </summary>
        private JObject GetMenuItemAt(MenuItemsListPart menuItems, int[] indexes)
        {
            ContentItem menuItem = null;

            foreach (var index in indexes)
            {
                menuItem  = menuItems.MenuItems[index];
                menuItems = menuItem.As <MenuItemsListPart>();
            }

            var newObj = JObject.Parse(JsonConvert.SerializeObject(menuItem));

            if (newObj["MenuItemsListPart"] != null)
            {
                newObj["MenuItemsListPart"] = new JObject(new JProperty("MenuItems", new JArray()));
            }

            return(newObj);
        }