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); } }
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); }