private void CreateFilters(out CollectionConfigurationError[] errors) { var errorList = new List <CollectionConfigurationError>(); foreach (FilterConjunctionGroupInfo filterConjunctionGroupInfo in this.info.FilterGroups ?? new FilterConjunctionGroupInfo[0]) { CollectionConfigurationError[] groupErrors = null; try { var conjunctionFilterGroup = new FilterConjunctionGroup <TTelemetry>(filterConjunctionGroupInfo, out groupErrors); this.filterGroups.Add(conjunctionFilterGroup); } catch (Exception e) { errorList.Add( CollectionConfigurationError.CreateError( CollectionConfigurationErrorType.MetricFailureToCreateFilterUnexpected, string.Format(CultureInfo.InvariantCulture, "Failed to create a filter group {0}.", filterConjunctionGroupInfo), e, Tuple.Create("MetricId", this.info.Id))); } if (groupErrors != null) { foreach (var error in groupErrors) { error.Data["MetricId"] = this.info.Id; } errorList.AddRange(groupErrors); } } errors = errorList.ToArray(); }
private static bool CheckFiltersGeneric <TTelemetry>(TTelemetry document, FilterConjunctionGroup <TTelemetry> filterGroup, List <CollectionConfigurationError> errorList) { bool filterPassed = false; try { if (filterGroup.CheckFilters(document, out CollectionConfigurationError[] groupErrors))