Beispiel #1
0
 JObject Build(CompoundCriteria criteria)
 {
     // A compound criteria with one item can be collapsed
     return(criteria.Criteria.Count == 1
         ? Build(criteria.Criteria.First())
         : new JObject(new JProperty(criteria.Name, new JArray(criteria.Criteria.Select(Build).ToList()))));
 }
        private void Build(CompoundCriteria criteria)
        {
            if (criteria.Criteria.Count == 1)
            {
                Build(criteria.Criteria.First());
            }
            else
            {
                var queryStringCritera = criteria.Criteria.Where(q => q is QueryStringCriteria);

                if (queryStringCritera.Any())
                {
                    if (queryStringCritera.Count() == 1)
                    {
                        Build(queryStringCritera.First());
                    }
                    else
                    {
                        throw new NotSupportedException("Multiple Contains queries on string properties are currently not supported!");
                    }

                    criteria.RemoveQueryStringCriteria();

                    Build(criteria);

                    return;
                }

                SimpleBuild(criteria);
            }
        }
 protected JObject Build(CompoundCriteria criteria)
 {
     return(criteria.Criteria.Count == 1
         ? this.Build(criteria.Criteria.First() as dynamic)
         : new JObject(new JProperty(criteria.Name, new JArray(criteria.Criteria.Select(token => this.Build(token as dynamic)).ToList()))));
 }