コード例 #1
0
 public void RunPopupTool(PopupTool tool)
 {
     try
     {
         UserControl control = tool.GetControl();
         if (control == null)
         {
             return;
         }
         Tabs.OpenPopup(control, tool.Description);
         ReportAnalytics(tool.Description, tool.TrackId);
     }
     catch (Exception ex)
     {
         MessageBox.Show("Error runing tool: " + tool.Description +
                         "\r\nException:" + ex.Message + "\r\n" +
                         "Trace: " + ex.StackTrace, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
     }
 }
コード例 #2
0
        private void LoadTools()
        {
            bool isnetwork = false;

            try
            {
                DriveInfo di = new DriveInfo(Folders.Application);
                if (di.DriveType == DriveType.Network)
                {
                    isnetwork = true;
                }
            }
            catch (ArgumentException) { isnetwork = true; }
            string[] tools = Directory.GetFiles(Folders.Application, "*.Tool.dll");

            //object l = new object();
            SetProgressValue(TaskbarItemProgressState.Indeterminate, 100);
            foreach (var tool in tools)
            {
                try
                {
                    Assembly asm   = LoadModule(tool, isnetwork);
                    Type[]   types = asm.GetTypes();
                    object   load;
                    foreach (var type in types)
                    {
                        if (!type.IsPublic || type.IsAbstract)
                        {
                            continue;
                        }
                        if (type.IsClass)
                        {
                            object loadable = (from i in type.GetCustomAttributes(true) where i is Loadable select i).FirstOrDefault();
                            if (loadable == null)
                            {
                                continue;
                            }
                            load = Activator.CreateInstance(type);
                            if (load is WebTool)
                            {
                                WebTool wt = (WebTool)load;
                                App._WebTools.Add(wt);
                            }
                            else if (load is Tool)
                            {
                                Tool t = (Tool)load;
                                App._Tools.Add(t);
                            }
                            else if (load is ExternalTool)
                            {
                                ExternalTool et = (ExternalTool)load;
                                App._ExtTools.Add(et);
                            }
                            else if (load is PopupTool)
                            {
                                PopupTool pt = (PopupTool)load;
                                App._Popups.Add(pt);
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Error Loading modul: " + tool +
                                    "\r\nException:" + ex.Message + "\r\n" +
                                    "Trace: " + ex.StackTrace, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
            SetProgressValue(TaskbarItemProgressState.None, 0);
        }