private void Worker_CreateReport(object sender, DoWorkEventArgs e) { // Bundles all of the the user input text for easier handling. var userInput = new UserInput(this); if (Worker_CheckIfCanceled(e)) { return; } // Extract the data from the .etl var telemetryData = new ETW(userInput); if (Worker_CheckIfCanceled(e)) { return; } // Format the data for the report and create statistics. List <ScenarioRun> formattedTelemetryData = Telemetry.FormatData(telemetryData, userInput); if (Worker_CheckIfCanceled(e)) { return; } // Create the excel report. ExcelReport.Create(formattedTelemetryData, userInput); if (Worker_CheckIfCanceled(e)) { return; } }
static internal List <ScenarioRun> FormatData(ETW telemetryData, MainWindow.UserInput userInput) { var scenario = new List <ScenarioRun>(); // Pair start/end events. var eventCount = telemetryData.Events.Count; var events = telemetryData.Events; var DesiredStartEvent = new TelemetryEvent(0, userInput.StartEventName, userInput.StartEventParameter1, userInput.StartEventParameter2); var DesiredEndEvent = new TelemetryEvent(0, userInput.EndEventName, userInput.EndEventParameter1, userInput.EndEventParameter2); for (int startEventIndex = 0; startEventIndex < eventCount; startEventIndex++) { if (events[startEventIndex].Equals(DesiredStartEvent)) { for (int endEventIndex = startEventIndex; endEventIndex < eventCount; endEventIndex++) { if (events[endEventIndex].Equals(DesiredEndEvent)) { scenario.Add(new ScenarioRun(events[startEventIndex], events[endEventIndex])); endEventIndex = eventCount; // Break the inner loop } } } } return(scenario); }
/// <summary> /// Matches start and end events, and generates statistics based on these pairings. /// </summary> internal static List <ScenarioRun> Analyze(ETW telemetryData) { var formattedData = new List <ScenarioRun>(); return(formattedData); }