private List <vmJsTree> FillFieldName(int id, string jsonFileName) { List <vmJsTree> lstVmJsTree = null; string contentRootPath = _hostingEnvironment.ContentRootPath; var rootFilePath = string.Concat(contentRootPath, "/", Settings.FeedJSONFilePath); // if (Session[$"JsonTreeDisableFoundKeys_{id}"] != null) // lstVmJsTree = Session[$"JsonTreeDisableFoundKeys_{id}"] as List<vmJsTree>; // else if (!string.IsNullOrEmpty(jsonFileName)) if (!string.IsNullOrEmpty(jsonFileName)) { using (StreamReader r = new StreamReader(Path.Combine(rootFilePath, jsonFileName))) { string json = r.ReadToEnd(); lstVmJsTree = JsonConvert.DeserializeObject <List <vmJsTree> >(json); } } if (lstVmJsTree != null) { for (int i = 0; i < lstVmJsTree.Count; i++) { var vmJsTreeFinal = new vmJsTree(); FindNodeInTree(lstVmJsTree[i], "", vmJsTreeFinal, isDisableParentKeys: true); lstVmJsTree[i] = vmJsTreeFinal; } } return(lstVmJsTree); }
private void FindNodeInTree(vmJsTree jsTree, string text, vmJsTree jsTreeFinal, bool isDisableParentKeys = false) { if (jsTree != null) { if (string.IsNullOrEmpty(jsTreeFinal.Id)) { jsTreeFinal.Id = jsTree.Id; jsTreeFinal.Text = jsTree.Text; jsTreeFinal.Icon = jsTree.Icon; jsTreeFinal.LiAttributes = jsTree.LiAttributes; jsTreeFinal.AAttributes = jsTree.AAttributes; } jsTreeFinal.State = new vmJsTreeState(); if (isDisableParentKeys && jsTree.Children != null && jsTree.Children.Count > 0) { jsTreeFinal.State.Disabled = true; } if (!string.IsNullOrEmpty(text)) { var idParts = jsTree.Id.Split(new string[] { "||" }, StringSplitOptions.None); if (idParts.Length > 0) { if (idParts[0] == text) { jsTreeFinal.State.Selected = true; jsTreeFinal.State.Opened = true; } } } if (jsTree.Children != null) { jsTreeFinal.Children = new List <vmJsTree>(); for (int i = 0; i < jsTree.Children.Count; i++) { var jsTreeTemp = new vmJsTree(); jsTreeFinal.Children.Add(jsTreeTemp); FindNodeInTree(jsTree.Children[i], text, jsTreeFinal.Children[i], isDisableParentKeys: isDisableParentKeys); } } } }