in src/AccessibilityInsights.SharedUx/Controls/HierarchyControl.xaml.cs [839:894]
public void FileBug(HierarchyNodeViewModel vm = null)
{
vm = vm ?? this.treeviewHierarchy.SelectedItem as HierarchyNodeViewModel;
if (vm == null)
{
MessageDialog.Show(Properties.Resources.HierarchyControl_FileBug_Could_not_find_the_selected_item__the_bug_filing_is_canceled);
return;
}
if (vm.IssueLink != null)
{
// Bug already filed, open it in a new window
try
{
System.Diagnostics.Process.Start(vm.IssueLink.OriginalString);
}
#pragma warning disable CA1031 // Do not catch general exception types
catch (Exception ex)
{
ex.ReportException();
// Happens when bug is deleted, message describes that work item doesn't exist / possible permission issue
MessageDialog.Show(ex.InnerException?.Message);
vm.IssueDisplayText = null;
}
#pragma warning restore CA1031 // Do not catch general exception types
}
else
{
// File a new bug
var telemetryEvent = TelemetryEventFactory.ForIssueFilingRequest(FileBugRequestSource.Hierarchy);
Logger.PublishTelemetryEvent(telemetryEvent);
if (IssueReporter.IsConnected)
{
IssueInformation issueInformation = this._selectedElement.GetIssueInformation(IssueType.NoFailure);
FileIssueAction.AttachIssueData(issueInformation, this.ElementContext.Id, this._selectedElement.BoundingRectangle,
this._selectedElement.UniqueId);
IIssueResult issueResult = FileIssueAction.FileIssueAsync(issueInformation);
if (issueResult != null)
{
vm.IssueDisplayText = issueResult.DisplayText;
vm.IssueLink = issueResult.IssueLink;
}
File.Delete(issueInformation.TestFileName);
}
else
{
bool? accepted = MessageDialog.Show(Properties.Resources.HierarchyControl_FileIssue_Configure);
if (accepted.HasValue && accepted.Value)
{
this.HierarchyActions.SwitchToServerLogin();
}
}
}
}