Example #1
0
 /// <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);
         }
     }
 }
Example #2
0
        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));
            }
        }
Example #3
0
 /// <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());
 }