Beispiel #1
0
        public override bool Evaluate(DataObject dataObject)
        {
            Search search = new Search(dataObject.GetType());
            SearchConditionGroup conditionGroup = new SearchConditionGroup(SearchConditionGroup.SearchConditionGroupTypes.And);

            foreach (string field in uniqueFields)
            {
                conditionGroup.SearchConditions.Add(new GenericSearchCondition(dataObject.GetType())
                {
                    Field = field,
                    SearchConditionType = SearchCondition.SearchConditionTypes.Equals,
                    Value = dataObject.GetField(field).GetValue(dataObject)
                });
            }

            if (dataObject.PrimaryKeyField.GetValue(dataObject) != null)
            {
                long?primaryKey = dataObject.PrimaryKeyField.GetValue(dataObject) as long?;

                conditionGroup.SearchConditions.Add(new LongSearchCondition(dataObject.GetType())
                {
                    Field = dataObject.PrimaryKeyField.FieldName,
                    SearchConditionType = SearchCondition.SearchConditionTypes.NotEquals,
                    Value = primaryKey
                });
            }
            search.SearchCondition = conditionGroup;

            return(!search.ExecuteExists(null));
        }
        //
        // Search Method

        private List <SearchConditionGroup> BuildCondition()
        {
            List <SearchConditionGroup> _scgList = new List <SearchConditionGroup>();

            //
            List <SearchCondition> _sc1 = new List <SearchCondition>();
            string param = Request.QueryString["param"];

            if (!string.IsNullOrEmpty(param))
            {
                _sc1.Add(new SearchCondition()
                {
                    PropertyName = "RoleName", Operation = SearchOperationEnum.Contains, PropertyValue = param
                });
            }
            SearchConditionGroup _scg1 = new SearchConditionGroup()
            {
                ConditionList = _sc1, ConstraintType = ConstraintType.Or
            };

            //
            List <SearchCondition> _sc2 = new List <SearchCondition>();

            if (!string.IsNullOrEmpty(param))
            {
                _sc2.Add(new SearchCondition()
                {
                    PropertyName = "Description", Operation = SearchOperationEnum.Contains, PropertyValue = param
                });
            }

            SearchConditionGroup _scg2 = new SearchConditionGroup()
            {
                ConditionList = _sc2, ConstraintType = ConstraintType.And
            };

            _scgList.Add(_scg1);
            _scgList.Add(_scg2);
            return(_scgList);
        }