示例#1
0
        internal override ModelSearchResults SearchModelByDisplayName(string searchCriteria)
        {
            var searchResults = new ModelSearchResults();

            searchResults.Action         = Resources.SearchResultItemsMatching;
            searchResults.SearchCriteria = String.Format(
                CultureInfo.CurrentCulture,
                Resources.SearchResultSearchCriteria, searchCriteria);
            var visitor = new SearchVisitor(searchCriteria, SearchOnDisplayName);

            searchResults.TargetString        = searchCriteria;
            searchResults.ElementTextToSearch = SearchOnDisplayName;
            if (null != ViewModel.EDMRootNode() &&
                null != ViewModel.EDMRootNode().ConceptualModel &&
                null != ViewModel.EDMRootNode().ConceptualModel.ModelItem)
            {
                visitor.Traverse(ViewModel.EDMRootNode().ConceptualModel.ModelItem);
            }
            if (null != ViewModel.EDMRootNode() &&
                null != ViewModel.EDMRootNode().StorageModel &&
                null != ViewModel.EDMRootNode().StorageModel.ModelItem)
            {
                visitor.Traverse(ViewModel.EDMRootNode().StorageModel.ModelItem);
            }
            if (null != ViewModel.EDMRootNode() &&
                null != ViewModel.EDMRootNode().Diagrams &&
                null != ViewModel.EDMRootNode().Diagrams.ModelItem)
            {
                visitor.Traverse(ViewModel.EDMRootNode().Diagrams.ModelItem);
            }

            searchResults.Results = visitor.SearchResults;

            return(searchResults);
        }