示例#1
0
        protected virtual ICollection <string> GetFullTextSearchProperties(XpandSearchCriteriaBuilder criteriaBuilder, ListView listView)
        {
            criteriaBuilder.IncludeNonPersistentMembers = false;
            var fullTextSearchTargetPropertiesMode = GetFullTextSearchTargetPropertiesMode();

            switch (fullTextSearchTargetPropertiesMode)
            {
            case FullTextSearchTargetPropertiesMode.AllSearchableMembers:
                criteriaBuilder.FillSearchProperties();
                criteriaBuilder.AddSearchProperties(GetShownProperties(criteriaBuilder, listView));
                break;

            case FullTextSearchTargetPropertiesMode.VisibleColumns:
                var    shownProperties       = new List <string>(GetShownProperties(criteriaBuilder, listView));
                string friendlyKeyMemberName = FriendlyKeyPropertyAttribute.FindFriendlyKeyMemberName(View.ObjectTypeInfo, true);
                if (!string.IsNullOrEmpty(friendlyKeyMemberName) && !shownProperties.Contains(friendlyKeyMemberName))
                {
                    shownProperties.Add(friendlyKeyMemberName);
                }
                criteriaBuilder.SetSearchProperties(shownProperties);
                break;

            case FullTextSearchTargetPropertiesMode.IncludedColumns: {
                var properties = criteriaBuilder.IncludedColumns.Select(pair => pair.Value.Name).ToArray();
                criteriaBuilder.SetSearchProperties(properties);
                break;
            }

            default:
                throw new ArgumentException(fullTextSearchTargetPropertiesMode.ToString(), "criteriaBuilder");
            }
            return(criteriaBuilder.SearchProperties);
        }
        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;
                case FullTextSearchTargetPropertiesMode.IncludedColumns: {
                    var properties = criteriaBuilder.IncludedColumns.Select(pair => pair.Value.Name).ToArray();
                    criteriaBuilder.SetSearchProperties(properties);
                    break;
                }
                default:
                    throw new ArgumentException(fullTextSearchTargetPropertiesMode.ToString(), "criteriaBuilder");
            }
            return criteriaBuilder.SearchProperties;
        }