Ejemplo n.º 1
0
        private void sessionsTrayMenu()
        {
            //savedSessionsToolStripMenuItem.DropDownItems.Clear();

            seekerSessions           sessionToLoad    = new seekerSessions();
            List <ToolStripMenuItem> sessionMenuItems = new List <ToolStripMenuItem>();

            string filepath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Seeker\Sessions\" + frmMain.domainAccountData[1] + @"\";

            Thread thLoadTraySessions = new Thread(() =>
            {
                if (Directory.Exists(filepath))
                {
                    ToolStripMenuItem sessionLoadProgress = new ToolStripMenuItem();
                    sessionLoadProgress.Text  = "Loading...";
                    sessionLoadProgress.Image = Seeker.Properties.Resources.spinningWeel16;
                    Invoke((MethodInvoker) delegate { savedSessionsToolStripMenuItem.DropDownItems.Clear(); savedSessionsToolStripMenuItem.DropDownItems.Add(sessionLoadProgress); });

                    DirectoryInfo d = new DirectoryInfo(filepath);
                    foreach (var file in d.GetFiles("*.xml"))
                    {
                        sessionToLoad = dLibObjSerializer.dLibObjSerializer.XmlDeSerializeObjectFromDisk <seekerSessions>(file.FullName);

                        ToolStripMenuItem itemToInsert = new ToolStripMenuItem();
                        itemToInsert.Text   = sessionToLoad.Description + " - " + sessionToLoad.SessionDate;
                        itemToInsert.Click += new EventHandler(sessionLauncherStripClick);
                        itemToInsert.Tag    = sessionToLoad;
                        itemToInsert.Image  = Seeker.Properties.Resources.seekerSession16;

                        //Insert session Objects
                        foreach (seekerObjects sessionObj in sessionToLoad.Objects)
                        {
                            seekerSessions sessionToOverhideAndLoad = new seekerSessions();
                            sessionToOverhideAndLoad.Objects.Add(sessionObj);

                            ToolStripMenuItem itemToInsertInSessionObjects = new ToolStripMenuItem();

                            itemToInsertInSessionObjects.Text   = sessionObj.QueryData;
                            itemToInsertInSessionObjects.Tag    = sessionToOverhideAndLoad;
                            itemToInsertInSessionObjects.Click += new EventHandler(sessionLauncherStripClick);

                            switch (sessionObj.Type)
                            {
                            case seekerObjectType.AD_Computer:
                                itemToInsertInSessionObjects.Image = imgListObjType.Images["Computer"];
                                break;

                            case seekerObjectType.AD_User:
                                itemToInsertInSessionObjects.Image = imgListObjType.Images["User"];
                                break;

                            case seekerObjectType.AD_Group:
                                itemToInsertInSessionObjects.Image = imgListObjType.Images["Group"];
                                break;

                            case seekerObjectType.AD_OrganizationalUnit:
                                itemToInsertInSessionObjects.Image = imgListObjType.Images["ouIcon"];
                                break;
                            }
                            itemToInsert.DropDownItems.Add(itemToInsertInSessionObjects);
                        }
                        sessionMenuItems.Add(itemToInsert);
                        //savedSessionsToolStripMenuItem.DropDownItems.Add(itemToInsert);
                    }
                    try
                    {
                        Invoke((MethodInvoker) delegate
                        {
                            savedSessionsToolStripMenuItem.DropDownItems.Clear();
                            ToolStripMenuItem[] arr = sessionMenuItems.OrderBy(o => o.Text).ToArray();
                            savedSessionsToolStripMenuItem.DropDownItems.AddRange(arr);
                        });
                    }
                    catch { }
                }
            });

            thLoadTraySessions.Start();
        }