public void RunETool(ExternalTool tool)
 {
     try
     {
         tool.RunTool();
         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 ToolsMenuItem_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                var pProcess = ExternalTool.RunTool(((sender as System.Windows.Controls.MenuItem).DataContext as ExternalTool).PathToExe);

                if (pProcess != null)
                {
                    pProcess.Start();

                    pProcess.WaitForExit();
                }
            } catch (Exception ex)
            {
                this.ShowMessageAsync("Error", ex.Message);
            }
        }