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())))); }