private async void Run_Report(object sender, RoutedEventArgs e) { if (textBox.Text == string.Empty) { return; } loadingText.Visibility = Visibility.Visible; DateTime start, end; var startTimeString = startDate.Text + " " + startTime.Text; var endTimeString = endDate.Text + " " + endTime.Text; var startTimeSet = DateTime.TryParse(startTimeString, out start); var endTimeSet = DateTime.TryParse(endTimeString, out end); var reportResults = await logParser.ParseLogFile( textBox.Text, (msg) => UpdateLoadingText(msg), startTimeSet?(DateTime?)start : null, endTimeSet?(DateTime?)end : null); await reportAggregator.AggregateReport( reportResults, (msg) => UpdateLoadingText(msg)); loadingText.Visibility = Visibility.Hidden; }