Exemplo n.º 1
0
        public void AddEvent(TraceEvent @event)
        {
            if (@event == null)
            {
                throw new ArgumentNullException("event");
            }

            TracePivotRowCollection rows = Rows;

            for (int i = 0; i < RowSettings.Count; i++)
            {
                var setting = RowSettings[i];

                if (setting.Type == RowType.EventName)
                {
                    TracePivotRow row;
                    if (rows.TryGetValue(@event.Name, out row) == false)
                    {
                        row = new TracePivotRow(this, setting, @event.Name, null);
                        rows.Add(row);
                    }

                    foreach (var column in Columns)
                    {
                        if (column.Value.Settings.Filter.Type == FilterType.EventName)
                        {
                            var eventName = column.Value.Settings.Filter.EventName;
                            row[column.Key].Measure.AddRange(@event.ByName(eventName));
                        }
                    }
                }
            }
        }