public DataView GetNodeChildren(RootNodes specialID) { var retTable = new DataTable("RootNodes"); retTable.Columns.Add(new DataColumn("ID", typeof(string))); retTable.Columns.Add(new DataColumn("DisplayName", typeof(string))); retTable.Columns.Add(new DataColumn("NodeType", typeof(NodeTypes))); switch (specialID) { case RootNodes.Notebooks: { if (dsOneNote.Tables.IndexOf("Notebook") < 0) { return(null); } DataTable dataTable = dsOneNote.Tables["Notebook"]; foreach (DataRow rowView in dataTable.Rows) { string copyID = rowView["ID"].ToString(); string copyDisplayName = rowView["name"].ToString(); const NodeTypes copyNodeType = NodeTypes.Notebook; retTable.Rows.Add(new object[] { copyID, copyDisplayName, copyNodeType }); } return(retTable.DefaultView); } case (RootNodes.LiveSharedSections): case (RootNodes.OpenSections): case (RootNodes.UnfiledNotes): if (dsOneNote.Tables.IndexOf(specialID.ToString()) < 0) { return(null); } DataTable dTable = dsOneNote.Tables[specialID.ToString()]; return(this.GetNodeChildren(dTable.Rows[0]["ID"].ToString())); case (RootNodes.WorkingSets): { DataTable dTableWS = workingSet.dsWorkingSet.Tables["WorkingSet"]; foreach (DataRow rowView in dTableWS.Rows) { string copyID = rowView["ID"].ToString(); string copyDisplayName = rowView["name"].ToString(); const NodeTypes copyNodeType = NodeTypes.WorkingSet; retTable.Rows.Add(new object[] { copyID, copyDisplayName, copyNodeType }); } return(retTable.DefaultView); } } return(null); }