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();
        }
Пример #2
0
        private static bool CheckFiltersGeneric <TTelemetry>(TTelemetry document, FilterConjunctionGroup <TTelemetry> filterGroup, List <CollectionConfigurationError> errorList)
        {
            bool filterPassed = false;

            try
            {
                if (filterGroup.CheckFilters(document, out CollectionConfigurationError[] groupErrors))