private static List <DiagProcessFilterEntry> TransformKey(ProcessKey processKey) { List <DiagProcessFilterEntry> filterEntries = new List <DiagProcessFilterEntry>(); if (processKey.ProcessId.HasValue) { filterEntries.Add(new DiagProcessFilterEntry { Criteria = DiagProcessFilterCriteria.ProcessId, MatchType = DiagProcessFilterMatchType.Exact, Value = processKey.ProcessId.Value.ToString(CultureInfo.InvariantCulture) }); } if (processKey.ProcessName != null) { filterEntries.Add(new DiagProcessFilterEntry { Criteria = DiagProcessFilterCriteria.ProcessName, MatchType = DiagProcessFilterMatchType.Exact, Value = processKey.ProcessName }); } if (processKey.RuntimeInstanceCookie.HasValue) { filterEntries.Add(new DiagProcessFilterEntry { Criteria = DiagProcessFilterCriteria.RuntimeId, MatchType = DiagProcessFilterMatchType.Exact, Value = processKey.RuntimeInstanceCookie.Value.ToString("D") }); } if (filterEntries.Count > 0) { return(filterEntries); } throw new ArgumentException($"Invalid {nameof(processKey)}"); }
public static DiagProcessFilter FromProcessKey(ProcessKey processKey) { var filter = new DiagProcessFilter(); List <DiagProcessFilterEntry> filterEntries = TransformKey(processKey); for (int index = 0; index < filterEntries.Count; ++index) { filter.Filters.Add(filterEntries[index]); } return(filter); }