in src/AccessibilityInsights.SharedUx/Controls/ScannerResultControl.xaml.cs [276:339]
private void btnFileBug_Click(object sender, RoutedEventArgs e)
{
var vm = ((Button)sender).Tag as ScanListViewItemViewModel;
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.HowtoFix);
Logger.PublishTelemetryEvent(telemetryEvent);
if (IssueReporter.IsConnected)
{
IssueInformation issueInformation = null ;
try
{
issueInformation = vm.GetIssueInformation();
FileIssueAction.AttachIssueData(issueInformation, this.EcId, vm.Element.BoundingRectangle, vm.Element.UniqueId);
IIssueResult issueResult = FileIssueAction.FileIssueAsync(issueInformation);
if (issueResult != null)
{
vm.IssueDisplayText = issueResult.DisplayText;
vm.IssueLink = issueResult.IssueLink;
}
}
#pragma warning disable CA1031 // Do not catch general exception types
catch (Exception ex)
{
ex.ReportException();
}
#pragma warning restore CA1031 // Do not catch general exception types
finally
{
if(issueInformation != null && File.Exists(issueInformation.TestFileName))
{
File.Delete(issueInformation.TestFileName);
}
}
}
else
{
bool? accepted = MessageDialog.Show(Properties.Resources.ScannerResultControl_btnFileBug_Click_File_Issue_Configure);
if (accepted.HasValue && accepted.Value)
{
SwitchToServerLogin();
}
}
}
}