private static void MatchTypeOnObject <T, V>( [NotNull] string text, [NotNull] IComposedObject <V> searchObject, ref DbRef exactMatch, ref ObjectBase lastExactMatchObject, ref DbRef partialMatch, ref ObjectBase lastPartialMatchObject) where T : ObjectBase where V : ObjectBase { if (searchObject == null) { throw new ArgumentNullException(nameof(searchObject)); } if (string.IsNullOrWhiteSpace(text)) { return; } if (!(searchObject.DataObject is T)) { return; } if (string.Compare(searchObject.DataObject.Name, text, StringComparison.OrdinalIgnoreCase) == 0) { exactMatch += searchObject.DataObject.DbRef; lastExactMatchObject = searchObject.DataObject; } else if (searchObject.DataObject.Aliases != null && searchObject.DataObject.Aliases.Any(a => string.Compare(a, text, StringComparison.OrdinalIgnoreCase) == 0)) { exactMatch += searchObject.DataObject.DbRef; lastExactMatchObject = searchObject.DataObject; } else if (Regex.IsMatch(text, searchObject.DataObject.Name.Replace("*", ".*?"), RegexOptions.IgnoreCase)) { partialMatch += searchObject.DataObject.DbRef; lastPartialMatchObject = searchObject.DataObject; } else if (searchObject.DataObject.Aliases != null && searchObject.DataObject.Aliases.Any( a => Regex.IsMatch(text, searchObject.DataObject.Name.Replace("*", ".*?"), RegexOptions.IgnoreCase))) { partialMatch += searchObject.DataObject.DbRef; lastPartialMatchObject = searchObject.DataObject; } }
public static IDomainObject Execute(IComposedObject root) { Window.Root = root; }