//public void RecursiveDisplay(OysterClassLibrary.Section DrawBody, ref TreeNode NodeX, OysterClassLibrary.SectionType MyCurrentSectionType) public void RecursiveDisplay(OysterClassLibrary.Section DrawSection, ref TreeNode NodeX, OysterClassLibrary.SectionType MyCurrentSectionType) { OysterClassLibrary.Functions F = new OysterClassLibrary.Functions(); if(DrawSection.IsDefault == false) { TreeNode NodeBody = NodeX.Nodes.Add(DrawSection.Description); string testme = DrawSection.Description; NodeBody.Tag = DrawSection; NodeBody.ImageIndex = 1; NodeBody.SelectedImageIndex =1; NodeBody.ForeColor = System.Drawing.Color.DarkBlue; if((g_SelectedAnItem == false)&&(DrawSection.CreatedBySectionType.ID != OSystem.SectionTypeSysAdmin.ID)) { g_SelectedAnItem = true; treeView1.SelectedNode = NodeBody; NodeBody.EnsureVisible(); MouseEventArgs A = new MouseEventArgs(MouseButtons.Left,1,1,1,0); treeView1_MouseUp(treeView1,A); } if(OpenToBody == DrawSection.ID) { NodeBody.EnsureVisible(); treeView1.SelectedNode = NodeBody; g_objSection = DrawSection; } //bool DidOnce = false; foreach(OysterClassLibrary.User DrawUser in DrawSection.CurrentUsers) { TreeNode NodeUser = null; int[] UO = OSystem.UnassignedIDs; if(UO[0]== DrawUser.ID) { NodeUser = NodeBody.Nodes.Add(DrawUser.Description); NodeUser.ForeColor = System.Drawing.Color.Red; NodeUser.NodeFont = new Font("Arial",10,FontStyle.Bold); } else { NodeUser = NodeBody.Nodes.Add(DrawUser.Description); NodeUser.ForeColor = System.Drawing.Color.Black; NodeUser.NodeFont = new Font("Arial",10,FontStyle.Regular); } string test = DrawUser.Description; test = DrawUser.CurrentSectionID.ToString(); NodeUser.Tag = DrawUser; NodeUser.ImageIndex = 0; NodeUser.SelectedImageIndex = 0; if(OpenToUser == DrawUser.ID) { // NodeUser.EnsureVisible(); treeView1.SelectedNode = NodeUser; g_objUser = DrawUser; } OysterClassLibrary.SectionType UT = F.GetSectionType(DrawSection.CreatedBySectionType.NextSectionTypeID); TreeNode NodeLabel = null; //if((DrawSection.CurrentRecordings.Count > 0)||(DrawUser.NextOwnedSections.Count > 0)) if(DrawUser.NextOwnedSections.Count > 0) { NodeLabel = new TreeNode(); NodeLabel = NodeUser.Nodes.Add(UT.Description); NodeLabel.ImageIndex = 8; NodeLabel.SelectedImageIndex = 8; } else { // NodeLabel = NodeUser.Nodes.Add("No Recordings"); } //TreeNode NodeLabel = NodeLabel.Nodes.Add(DrawUser.Description); foreach(OysterClassLibrary.Section B in DrawUser.NextOwnedSections) { OysterClassLibrary.SectionType prevUT = F.GetSectionType(B.CreatedBySectionType.PreviousSectionTypeID); RecursiveDisplay(B,ref NodeLabel,prevUT); } // RecursiveDisplay(DrawUser.Bodys,NodeUser); if(DrawSection.CurrentRecordings.Count > 0) { bool drawonce = false; testme = DrawSection.CurrentRecordings.Count.ToString(); //NodeRT.NodeFont = new Font("Arial",10,FontStyle.Bold); TreeNode NodeRT = new TreeNode(); //IF Recording Sessions go ahead and prepare to draw ListView lvSessions = new ListView(); foreach(OysterClassLibrary.Recording R in DrawSection.CurrentRecordings) { bool DoesHaveCopy = F.HasInstanceOfRecording(DrawUser.ID,R.ID,DrawSection.ID); if(DoesHaveCopy == true) { if(R.SessionID != "") { foreach(ListViewItem LVI in lvSessions.Items) { if(LVI.Text == R.SessionName) goto SkipItem; } ListViewItem LCI = lvSessions.Items.Add(R.SessionName); LCI.Tag = R.SessionID; } SkipItem:{} } } TreeNode[] NodeSessions = new TreeNode[lvSessions.Items.Count]; int SessionCount = 0; //End Recording Session Preparation foreach(OysterClassLibrary.Recording DrawRecording in DrawSection.CurrentRecordings) { bool DoesHaveCopy = F.HasInstanceOfRecording(DrawUser.ID,DrawRecording.ID,DrawSection.ID); if(DoesHaveCopy == true) { if(drawonce == false) { drawonce = true; NodeRT = NodeUser.Nodes.Add("Recordings"); NodeRT.ForeColor = System.Drawing.Color.DarkSlateBlue; NodeRT.ImageIndex = 6; NodeRT.SelectedImageIndex = 6; OysterClassLibrary.StreamingEncoder SE = OSystem.GetStreamingEncoderById(DrawRecording.StreamingEncoderID); foreach(ListViewItem LVI in lvSessions.Items) { NodeSessions[SessionCount] = NodeRT.Nodes.Add(LVI.Text); NodeSessions[SessionCount].ImageIndex = 3; NodeSessions[SessionCount].Tag = SE.CurrentRoom; NodeSessions[SessionCount].ImageIndex = 2; NodeSessions[SessionCount].SelectedImageIndex = 2; SessionCount++; } } //DrawRecording.BodyId = DrawBody.ID; // if(DrawRecording.DisplayName == null) // DrawRecording.DisplayName = DrawRecording.Created.ToString(); TreeNode NodeRecording = new TreeNode(); if(DrawRecording.SessionID == "") { NodeRecording = NodeRT.Nodes.Add(DrawRecording.DisplayName); } else { for(int a=0; a < SessionCount;a++) { if(DrawRecording.SessionName == NodeSessions[a].Text) NodeRecording = NodeSessions[a].Nodes.Add(DrawRecording.DisplayName); } } if(DrawRecording.IsReady) NodeRecording.Tag = DrawRecording; else NodeRecording.ForeColor = Color.Gray; NodeRecording.ImageIndex = 3; NodeRecording.SelectedImageIndex = 3; NodeRecording.NodeFont = new Font("Arial",10,FontStyle.Regular); if(OpenToRecording == DrawRecording.ID) { // NodeRecording.EnsureVisible(); treeView1.SelectedNode = NodeRecording; g_objRecording = DrawRecording; } } } // if( NodeLabel != null) // NodeLabel.Nodes.Add(NodeRT); // else if(NodeRT.Nodes.Count > 0) // NodeUser.Nodes.Add(NodeRT); } } } else { // foreach(OysterClassLibrary.Permission P in MyCurrentSectionType.CanViewUnassignedRecordings) // { // string testme = P.CanOperateOn.ToString(); // // if((DrawBody.CreatedBySectionType.ID == P.CanOperateOn)&&(DrawBody.OwnerID != cvosUser.ID)) //OAKLAND SPECIFIC CODE THAT ALLOWS ONLY SYSTEM ADMIN OR ADMIN TO VIEW UNASSIGNED RECORDINGS if(LoginUser.HighestAuthorityLevel.CanViewUnassignedRecordings.Count > 0) { string testme = MyCurrentSectionType.Description; if((DrawSection.CurrentRecordings.Count > 0)&&(DrawSection.OwnerID != LoginUser.ID)) { //THIS LITTLE SECTION IS OAKLAND SPECIFIC.. THAT IS BECAUSE I HAD TOOO TreeNode NodeURT = new TreeNode(); // if(DrawBody.CreatedBySectionType.ID == OSystem.SectionTypeSysAdmin.NextSectionTypeID) // { // NodeURT= NodeX.Nodes.Add("Recordings"); // NodeURT.ForeColor = Color.DarkBlue; // } // else // { NodeURT= NodeX.Nodes.Add("Unassigned Recordings"); NodeURT.ForeColor = Color.Brown; NodeURT.ImageIndex = 6; NodeURT.SelectedImageIndex = 6; // } //IF Recording Sessions go ahead and prepare to draw ListView lvSessions = new ListView(); foreach(OysterClassLibrary.Recording R in DrawSection.CurrentRecordings) { if(R.SessionID != null) { foreach(ListViewItem LVI in lvSessions.Items) { if(LVI.Text == R.SessionName) goto SkipItem; } ListViewItem LGI = lvSessions.Items.Add(R.SessionName); LGI.Tag = R.SessionID; } SkipItem:{} } TreeNode[] NodeSessions = new TreeNode[lvSessions.Items.Count]; int SessionCount = 0; foreach(ListViewItem LVI in lvSessions.Items) { //OysterClassLibrary.StreamingEncoder SE = OSystem.GetStreamingEncoderById(R.StreamingEncoderID); NodeSessions[SessionCount] = NodeURT.Nodes.Add(LVI.Text); NodeSessions[SessionCount].ImageIndex = 2; NodeSessions[SessionCount].SelectedImageIndex = 2; NodeSessions[SessionCount].Tag = LVI.Tag; SessionCount++; } //End Recording Session Preparation foreach(OysterClassLibrary.Recording DrawRecording in DrawSection.CurrentRecordings) { // bool DoesOwnCopy = F.HasInstanceOfRecording(DrawSection.OwnerID,DrawRecording.ID,DrawSection.ID); if(true)// if(DoesOwnCopy == true) { //DrawRecording.BodyId = DrawBody.ID; // if(DrawRecording.DisplayName == null) // DrawRecording.DisplayName = DrawRecording.Created.ToString(); TreeNode NodeRecording = new TreeNode(); if(DrawRecording.SessionID == null) { NodeRecording = NodeURT.Nodes.Add(DrawRecording.DisplayName); } else { for(int a=0; a < SessionCount;a++) { if(DrawRecording.SessionName == NodeSessions[a].Text) NodeRecording = NodeSessions[a].Nodes.Add(DrawRecording.DisplayName); } } if(DrawRecording.IsReady) NodeRecording.Tag = DrawRecording; else NodeRecording.ForeColor = Color.Gray; NodeRecording.ImageIndex = 3; NodeRecording.SelectedImageIndex = 3; //NodeRecording.ForeColor = System.Drawing.Color.Brown; NodeRecording.NodeFont = new Font("Arial",10,FontStyle.Regular); if(OpenToRecording == DrawRecording.ID) { // NodeRecording.EnsureVisible(); treeView1.SelectedNode = NodeRecording; g_objRecording = DrawRecording; } } } } // else {TreeNode NodeURT = NodeX.Nodes.Add("No Unassigned Recordings");} } } F.Dispose(); }