Alphashack.Graphdat.Agent.SqlTrace.SqlTraceReader.ReadTraceFile C# (CSharp) Method

ReadTraceFile() private method

private ReadTraceFile ( string filename ) : void
filename string
return void
        private void ReadTraceFile(string filename)
        {
            var traceFile = new TraceFile();
            traceFile.InitializeAsReader(filename);

            var eventClassOrdinal = traceFile.GetOrdinal("EventClass");
            var textDataOrdinal = traceFile.GetOrdinal("TextData");
            //var databaseNameOrdinal = traceFile.GetOrdinal("DatabaseName");
            var startTimeOrdinal = traceFile.GetOrdinal("StartTime");
            var durationOrdinal = traceFile.GetOrdinal("Duration");

            while (traceFile.Read())
            {
                var eventClass = traceFile.GetString(eventClassOrdinal);

                // skip on start, end on stop
                if (eventClass.Equals("trace start", StringComparison.InvariantCultureIgnoreCase)) continue;
                if (eventClass.Equals("trace stop", StringComparison.InvariantCultureIgnoreCase)) break;

                var textData = traceFile.GetString(textDataOrdinal);
                //var databaseName = traceFile.GetString(databaseNameOrdinal);
                var startTime = traceFile.GetDateTime(startTimeOrdinal);
                var duration = traceFile.GetInt64(durationOrdinal)/1000; // duration is in microseconds

                // send the canonical query to the agent
                _agentConnect.Store(new Sample
                                        {
                                            //Method = databaseName,
                                            Uri = _parser.Rewrite(textData),
                                            ResponseTime = duration,
                                            Timestamp = startTime.Ticks
                                        }, Logger);
                DebugHelper.LogEntry(_eventLog, string.Format("Data sent: '{0}'", textData), EventLogEntryType.SuccessAudit);
            }

            traceFile.Close();
        }