public static IBasePattern[] ConvertAutomationPatternToBasePattern(this classic.AutomationPattern[] patterns, IUiElement element)
{
var resultList =
new List<IBasePattern>();
foreach (classic.AutomationPattern pattern in patterns) {
try {
switch (pattern.ProgrammaticName.Replace("Identifiers.Pattern", string.Empty)) {
case "DockPattern":
resultList.Add(AutomationFactory.GetPatternAdapter<IDockPattern>(element, pattern));
break;
case "ExpandCollapsePattern":
resultList.Add(AutomationFactory.GetPatternAdapter<IExpandCollapsePattern>(element, pattern));
break;
case "GridItemPattern":
resultList.Add(AutomationFactory.GetPatternAdapter<IGridItemPattern>(element, pattern));
break;
case "GridPattern":
resultList.Add(AutomationFactory.GetPatternAdapter<IGridPattern>(element, pattern));
break;
case "InvokePattern":
resultList.Add(AutomationFactory.GetPatternAdapter<IInvokePattern>(element, pattern));
break;
case "RangeValuePattern":
resultList.Add(AutomationFactory.GetPatternAdapter<IRangeValuePattern>(element, pattern));
break;
case "ScrollItemPattern":
resultList.Add(AutomationFactory.GetPatternAdapter<IScrollItemPattern>(element, pattern));
break;
case "ScrollPattern":
resultList.Add(AutomationFactory.GetPatternAdapter<IScrollPattern>(element, pattern));
break;
case "SelectionItemPattern":
resultList.Add(AutomationFactory.GetPatternAdapter<ISelectionItemPattern>(element, pattern));
break;
case "SelectionPattern":
resultList.Add(AutomationFactory.GetPatternAdapter<ISelectionPattern>(element, pattern));
break;
case "TableItemPattern":
resultList.Add(AutomationFactory.GetPatternAdapter<ITableItemPattern>(element, pattern));
break;
case "TablePattern":
resultList.Add(AutomationFactory.GetPatternAdapter<ITablePattern>(element, pattern));
break;
case "TextPattern":
resultList.Add(AutomationFactory.GetPatternAdapter<ITextPattern>(element, pattern));
break;
case "TogglePattern":
resultList.Add(AutomationFactory.GetPatternAdapter<ITogglePattern>(element, pattern));
break;
case "TransformPattern":
resultList.Add(AutomationFactory.GetPatternAdapter<ITransformPattern>(element, pattern));
break;
case "ValuePattern":
resultList.Add(AutomationFactory.GetPatternAdapter<IValuePattern>(element, pattern));
break;
case "WindowPattern":
resultList.Add(AutomationFactory.GetPatternAdapter<IWindowPattern>(element, pattern));
break;
// default:
//
// break;
}
}
catch {
}
}
return resultList.ToArray();
}