/// <summary> /// Returns all the fields from all the Selects defined in all queries for the request. /// </summary> /// <param name="request"></param> /// <returns></returns> public static IEnumerable <QueryComposerFieldDTO> FlattenStratifiers(this QueryComposerRequestDTO request) { foreach (var select in request.Queries.Select(q => q.Select)) { foreach (var field in FlattenSelectToFields(select).Where(f => f != null)) { yield return(field); } } }
public JsonResult GetTermValues(Guid?requestID) { if (requestID == null) { return(Json(null, JsonRequestBehavior.AllowGet)); } using (var db = new DataContext()) { Guid termID = Lpp.QueryComposer.ModelTermsFactory.DC_AgeDistribution; var req = db.Requests.Find(requestID); Lpp.Dns.DTO.QueryComposer.QueryComposerRequestDTO dto = Newtonsoft.Json.JsonConvert.DeserializeObject <QueryComposerRequestDTO>(req.Query); var criteria = dto.Queries.First().Where.Criteria.Where(c => c.Terms.Any(t => t.Type == termID)).FirstOrDefault(); var term = criteria.Terms.First(t => t.Type == termID); var termValues = term.Values.First(p => p.Key == "Values"); AgeValues val = Newtonsoft.Json.JsonConvert.DeserializeObject <AgeValues>(termValues.Value.ToString()); return(Json(val.AgeDistributionValue.ToArray(), JsonRequestBehavior.AllowGet)); } }
/// <summary> /// Confirms if the request has a query that contains the specified term in the stratifiers. /// </summary> /// <param name="request">The request.</param> /// <param name="termID">The term ID to look for.</param> /// <returns>True if an instance of the term is found, else false.</returns> public static bool HasStratifier(this QueryComposerRequestDTO request, Guid termID) { return(request.Queries.SelectMany(q => q.Select.Fields.Where(t => t.Type == termID)).Any()); }