Exemple #1
0
        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);
        }
Exemple #3
0
        /// <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);
        }