private void FindDuplicateIndexes(object sender, EventArgs e) { try { CallWrapper(); var task = new System.Threading.Tasks.Task(() => { OutputPane.WriteMessageAndActivatePane("Finding Duplicate Indexes..."); var finder = new DuplicateIndexFinder(); finder.ShowDuplicateIndexes(); OutputPane.WriteMessageAndActivatePane("Finding Duplicate Indexes...done"); }); task.Start(); if (task.Exception != null) { throw task.Exception; } } catch (Exception ex) { OutputPane.WriteMessage("Error finding duplicate indexes: {0}", ex.Message); } }
private void ClearConnection(object sender, RoutedEventArgs e) { try { _connectionString = String.Empty; } catch (Exception ex) { OutputPane.WriteMessageAndActivatePane("SSDTDevPack: CodeCoverage: Exception calling ClearConnection: {0}", ex); } }
private void DiscardResults(object sender, RoutedEventArgs e) { try { var store = CodeCoverageStore.Get; store.ClearStatements(); ShowCodeMap(sender, e); } catch (Exception ex) { OutputPane.WriteMessageAndActivatePane("SSDTDevPack: CodeCoverage: Exception calling Discard: {0}", ex); } }
private void QuickDeployClearConnection(object sender, EventArgs e) { try { QuickDeployer.ClearConnectionString(); OutputPane.WriteMessageAndActivatePane("Quick Deploy Connection String has been cleared."); } catch (Exception ex) { OutputPane.WriteMessage("QuickDeployClearConnection error: {0}", ex.Message); Log.WriteInfo("QuickDeployClearConnection error: {0}", ex.Message); } }
public void Start() { try { _continue = true; _gateway = new DatabaseGateway(_connectionString).Get(); _gateway.StartTrace(); } catch (Exception e) { OutputPane.WriteMessageAndActivatePane("CodeCoverage, error starting the trace: {0}", e); } }
public void Stop() { try { _gateway.StopTrace(); foreach (var item in _gateway.GetStatements(ObjectNameCache)) { CoveredStatements.Enqueue(item); } } catch (Exception e) { OutputPane.WriteMessageAndActivatePane("CodeCoverage, error stopping the trace: {0}", e); } }
private void Stop(object sender, RoutedEventArgs e) { try { _reader.Stop(); var count = _reader.CoveredStatements.Count; CodeCoverageStore.Get.AddStatements(_reader.CoveredStatements, _reader.ObjectNameCache); StartButton.IsEnabled = true; StopButton.IsEnabled = false; Status.Text = "Added " + count + " statements to code coverage"; ShowCodeMap(sender, e); } catch (Exception ex) { OutputPane.WriteMessageAndActivatePane("SSDTDevPack: CodeCoverage: Exception calling Stop: {0}", ex); } }
private void Start(object sender, RoutedEventArgs e) { try { if (String.IsNullOrEmpty(_connectionString)) { var dialog = new ConnectDialog(); dialog.ShowDialog(); _connectionString = dialog.ConnectionString; if (String.IsNullOrEmpty(_connectionString)) { return; } } Task.Run(() => { try { _reader = new ExtendedEventDataDataReader(_connectionString); _reader.Start(); } catch (Exception ex) { OutputPane.WriteMessageAndActivatePane("SSDTDevPack: CodeCoverage: Exception calling Start (Worker Thread): {0}", ex); } }); StartButton.IsEnabled = false; StopButton.IsEnabled = true; } catch (Exception ex) { OutputPane.WriteMessageAndActivatePane("SSDTDevPack: CodeCoverage: Exception calling Start (UI Thread): {0}", ex); } }
private void CorrectCaseTableNames(object sender, EventArgs e) { try { var task = new System.Threading.Tasks.Task(() => { OutputPane.WriteMessageAndActivatePane("Correcting the case of table names..."); var finder = new CorrectCaseTableFinder(); finder.CorrectCaseAllTableNames(); OutputPane.WriteMessageAndActivatePane("Correcting the case of table names...done"); }); task.Start(); if (task.Exception != null) { throw task.Exception; } } catch (Exception ex) { OutputPane.WriteMessage("Error correcting table name case: {0}", ex.Message); } }
private void ShowCodeMap(object sender, RoutedEventArgs e) { try { CodeMap.Items.Clear(); var store = CodeCoverageStore.Get; var projects = new ProjectEnumerator().Get(ProjectType.SSDT); foreach (var p in projects) { var newItem = new TreeViewItem(); //newItem.Header = p.Name; var statements = new StatementEnumerator().GetStatements(p); var fileMap = new Dictionary <string, List <CodeStatement <TSqlStatement> > >(); foreach (var statement in statements) { if (!fileMap.ContainsKey(statement.FileName)) { fileMap[statement.FileName] = new List <CodeStatement <TSqlStatement> >(); } fileMap[statement.FileName].Add(statement); } double parentStatements = 0; double parentCoveredStatements = 0; foreach (var file in fileMap.Keys.OrderBy(pp => pp)) { var map = fileMap[file]; var child = new TreeViewItem(); double childStatements = 0; double childCoveredStatements = 0; foreach (var sqlModule in map.Where(o => o.Statement.GetType() == typeof(CreateProcedureStatement))) { var name = (sqlModule.Statement as CreateProcedureStatement)?.ProcedureReference.Name.ToNameString(); parentStatements = AddChildItems(name, sqlModule, store, parentStatements, file, child, ref parentCoveredStatements, ref childStatements, ref childCoveredStatements); store.AddStatementFileMap(name, sqlModule.FileName); } foreach (var sqlModule in map.Where(o => o.Statement.GetType() == typeof(CreateFunctionStatement))) { var name = (sqlModule.Statement as CreateFunctionStatement)?.Name.ToNameString(); parentStatements = AddChildItems(name, sqlModule, store, parentStatements, file, child, ref parentCoveredStatements, ref childStatements, ref childCoveredStatements); store.AddStatementFileMap(name, sqlModule.FileName); } var childCoveragePercent = ((double)childCoveredStatements / (double)childStatements) * 100; var childLabel = new LabelWithProgressIndicator(string.Format("{0} - {1}% ({2} / {3})", new FileInfo(file).Name, childCoveragePercent, childCoveredStatements, childStatements), childCoveragePercent, file); childLabel.Configure(); child.Header = childLabel; if (child.Items.Count > 0) { newItem.Items.Add(child); } } var parentLabel = new LabelWithProgressIndicator(string.Format("{0} - ({1} / {2})", p.Name, parentCoveredStatements, parentStatements), (parentCoveredStatements / parentStatements) * 100.0); parentLabel.Configure(); newItem.Header = parentLabel; CodeMap.Items.Add(newItem); } } catch (Exception ex) { OutputPane.WriteMessageAndActivatePane("SSDTDevPack: Exception calling ShowCodeMap: {0}", ex); } }