private IEnumerable<string> GetFullTextSearchProperties(FullTextSearchTargetPropertiesMode fullTextSearchTargetPropertiesMode)
 {
     var criteriaBuilder = new SearchCriteriaBuilder(View.ObjectTypeInfo) {IncludeNonPersistentMembers = false};
     switch (fullTextSearchTargetPropertiesMode)
     {
         case FullTextSearchTargetPropertiesMode.AllSearchableMembers:
             criteriaBuilder.FillSearchProperties();
             criteriaBuilder.AddSearchProperties(GetShownProperties());
             break;
         case FullTextSearchTargetPropertiesMode.VisibleColumns:
             var shownProperties = new List<string>(GetShownProperties());
             string friendlyKeyMemberName = FriendlyKeyPropertyAttribute.FindFriendlyKeyMemberName(View.ObjectTypeInfo, true);
             if (!string.IsNullOrEmpty(friendlyKeyMemberName) && !shownProperties.Contains(friendlyKeyMemberName))
             {
                 shownProperties.Add(friendlyKeyMemberName);
             }
             criteriaBuilder.SetSearchProperties(shownProperties);
             break;
         default:
             throw new ArgumentException(fullTextSearchTargetPropertiesMode.ToString(), "fullTextSearchTargetPropertiesMode");
     }
     return criteriaBuilder.SearchProperties;
 }