protected virtual ICollection <String> GetFullTextSearchProperties(XpandSearchCriteriaBuilder criteriaBuilder) { criteriaBuilder.IncludeNonPersistentMembers = false; FullTextSearchTargetPropertiesMode fullTextSearchTargetPropertiesMode = GetFullTextSearchTargetPropertiesMode(); switch (fullTextSearchTargetPropertiesMode) { case FullTextSearchTargetPropertiesMode.AllSearchableMembers: criteriaBuilder.FillSearchProperties(); criteriaBuilder.AddSearchProperties(GetShownProperties(criteriaBuilder)); break; case FullTextSearchTargetPropertiesMode.VisibleColumns: var shownProperties = new List <string>(GetShownProperties(criteriaBuilder)); 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(), "criteriaBuilder"); } return(criteriaBuilder.SearchProperties); }
void OnCustomGetFullTextSearchProperties(object sender, CustomGetFullTextSearchPropertiesEventArgs customGetFullTextSearchPropertiesEventArgs) { var xpandSearchCriteriaBuilder = new XpandSearchCriteriaBuilder(View.ObjectTypeInfo, View); var fullTextSearchProperties = GetFullTextSearchProperties(xpandSearchCriteriaBuilder); customGetFullTextSearchPropertiesEventArgs.Properties.Clear(); customGetFullTextSearchPropertiesEventArgs.Properties.AddRange(fullTextSearchProperties); customGetFullTextSearchPropertiesEventArgs.Handled = true; }
private string[] GetShownProperties(XpandSearchCriteriaBuilder criteriaBuilder) { var visibleProperties = new List <string>(); var modelColumns = ((ListView)View).Model.Columns.GetVisibleColumns().Where(column => !criteriaBuilder.ExcludedColumns.Contains(column.ModelMember.MemberInfo)); foreach (IModelColumn column in modelColumns) { IMemberInfo memberInfo = null; if (column.ModelMember != null) { memberInfo = new ObjectEditorHelperBase(column.ModelMember.MemberInfo.MemberTypeInfo, column).DisplayMember; } if (memberInfo != null) { visibleProperties.Add(column.PropertyName + "." + memberInfo.Name); } else { visibleProperties.Add(column.PropertyName); } } return(visibleProperties.ToArray()); }