UIAutomation.ControlFromWin32Provider.FilterElements C# (CSharp) Method

FilterElements() private method

private FilterElements ( SingleControlSearcherData controlSearcherData, List initialCollection ) : List
controlSearcherData SingleControlSearcherData
initialCollection List
return List
        internal override List<IUiElement> FilterElements(SingleControlSearcherData controlSearcherData, List<IUiElement> initialCollection)
        {
            const WildcardOptions options = WildcardOptions.IgnoreCase | WildcardOptions.Compiled;
            var wildcardName = new WildcardPattern(controlSearcherData.Name ?? "*", options);
            var wildcardValue = new WildcardPattern(controlSearcherData.Value ?? "*", options);
            
            foreach (IUiElement element in initialCollection) {
                if (element.IsMatchWildcardPattern(ResultCollection, wildcardName, element.GetCurrent().Name))
                    continue;
                if (element.IsMatchWildcardPattern(ResultCollection, wildcardName, element.GetCurrent().AutomationId))
                    continue;
                if (element.IsMatchWildcardPattern(ResultCollection, wildcardName, element.GetCurrent().ClassName))
                    continue;
                try {
                    string elementValue = element.GetCurrentPattern<IValuePattern>(classic.ValuePattern.Pattern).Current.Value;
                    if (element.IsMatchWildcardPattern(ResultCollection, wildcardName, elementValue))
                        continue;
                    if (element.IsMatchWildcardPattern(ResultCollection, wildcardValue, elementValue))
                        continue;
                } catch {
                }
            }
            
            return ResultCollection;
        }
        
ControlFromWin32Provider