Exemple #1
0
        //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();
        }