SearchableEntry CreateSearchableEntry(SearchableEntryOption entryType,
                                       ModelItem item, ModelProperty property, string text, string propertyPath)
 {
     return(new SearchableEntry()
     {
         LineNumber = index++,
         SearchableEntryType = entryType,
         ModelItem = item,
         ModelProperty = property,
         Text = text,
         PropertyPath = propertyPath
     });
 }
        private void AddEntriesForPropertyValue(object value, ModelItem modelItem,
                                                ModelProperty property, SearchableEntryOption entryType, string propertyPath)
        {
            // be ready for recursively visit all sub properties.
            alreadyVisitedObjects.Clear();
            IList <string> texts = GetSearchableStrings(value);

            if (texts != null)
            {
                foreach (string valueText in texts)
                {
                    entries.Add(CreateSearchableEntry(entryType, modelItem, property, valueText, propertyPath));
                }
            }
        }
 private void AddEntriesForPropertyValue(object value, ModelItem modelItem,
     ModelProperty property, SearchableEntryOption entryType, string propertyPath)
 {
     // be ready for recursively visit all sub properties.
     alreadyVisitedObjects.Clear();
     IList<string> texts = GetSearchableStrings(value);
     if (texts != null)
     {
         foreach (string valueText in texts)
         {
             entries.Add(CreateSearchableEntry(entryType, modelItem, property, valueText, propertyPath));
         }
     }
 }
 private void AddEntriesForPropertyReference(string valueText, ModelItem modelItem,
     ModelProperty property, SearchableEntryOption entryType, string propertyPath)
 {
     entries.Add(CreateSearchableEntry(entryType, modelItem, property, valueText, propertyPath));
 }
 SearchableEntry CreateSearchableEntry(SearchableEntryOption entryType,
     ModelItem item, ModelProperty property, string text, string propertyPath)
 {
     return new SearchableEntry()
     {
         LineNumber = index++,
         SearchableEntryType = entryType,
         ModelItem = item,
         ModelProperty = property,
         Text = text,
         PropertyPath = propertyPath
     };
 }
 private void AddEntriesForPropertyReference(string valueText, ModelItem modelItem,
                                             ModelProperty property, SearchableEntryOption entryType, string propertyPath)
 {
     entries.Add(CreateSearchableEntry(entryType, modelItem, property, valueText, propertyPath));
 }