public QueryComposerRequestInterrogator(DTO.QueryComposer.QueryComposerRequestDTO request) { _request = request; if (_request.Select == null) { _request.Select = new DTO.QueryComposer.QueryComposerSelectDTO { Fields = Enumerable.Empty <DTO.QueryComposer.QueryComposerFieldDTO>() }; } if (_request.Select.Fields == null) { _request.Select.Fields = Enumerable.Empty <DTO.QueryComposer.QueryComposerFieldDTO>(); } _selectFields = _request.Select.Fields; if (_request.Where.Criteria == null) { _request.Where.Criteria = Enumerable.Empty <DTO.QueryComposer.QueryComposerCriteriaDTO>(); } _primaryCriteria = _request.Where.Criteria.FirstOrDefault(); if (_primaryCriteria != null) { _primaryObservationPeriodTerm = _primaryCriteria.Terms.FirstOrDefault(t => t.Type == ModelTermsFactory.ObservationPeriodID); } }
/// <summary> /// Attempts to set the sex stratifiction value of the SummaryRequestModel from the specified QueryComposerFieldDTO. /// </summary> /// <param name="model"></param> /// <param name="field"></param> protected static void SetSexStratification(SummaryRequestModel model, DTO.QueryComposer.QueryComposerTermDTO field) { DTO.Enums.SexStratifications value; Newtonsoft.Json.Linq.JObject job = field.Values.Select(x => x.Value).FirstOrDefault() as Newtonsoft.Json.Linq.JObject; if (field.Values == null || !Enum.TryParse <DTO.Enums.SexStratifications>((job.GetValue("Sex") ?? string.Empty).ToString(), out value)) { throw new Exception("Value for Sex Term is not Valid"); } model.SexStratification = (int)value; model.Sex = Utilities.ToString(value); }
public static IEnumerable <string> GetCodeNameStringCollection(this DTO.QueryComposer.QueryComposerTermDTO term) { if (term.GetValue("CodeValues") == null) { //legacy stuff var token = term.GetValue("Codes"); return(token.Values <string>()); } else { var token = term.GetValue("CodeValues"); List <Dns.DTO.CodeSelectorValueDTO> dto = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Dns.DTO.CodeSelectorValueDTO> >(token.ToString()); return(dto.Select(p => p.Name)); } }
/// <summary> /// Gets the value as an enum from the QueryComposerTermDTO for the specified key. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="term"></param> /// <param name="key"></param> /// <param name="value"></param> /// <returns></returns> public static bool GetEnumValue <T>(this DTO.QueryComposer.QueryComposerTermDTO term, string key, out T value) where T : struct, IConvertible { if (term == null) { value = default(T); return(false); } if (!typeof(T).IsEnum) { throw new ArgumentException("T must be an enum type."); } return(Enum.TryParse <T>(term.GetStringValue(key), out value)); }
/// <summary> /// Parses the "CodeValues" value of the term into a collection of Dns.DTO.CodeSelectorValueDTO. /// </summary> /// <param name="term"></param> /// <returns></returns> public static IEnumerable <Dns.DTO.CodeSelectorValueDTO> GetCodeSelectorValues(this DTO.QueryComposer.QueryComposerTermDTO term) { var token = term.GetValue("CodeValues"); if (token == null) { return(Enumerable.Empty <Dns.DTO.CodeSelectorValueDTO>()); } return(Newtonsoft.Json.JsonConvert.DeserializeObject <List <Dns.DTO.CodeSelectorValueDTO> >(token.ToString())); }
/// <summary> /// Returns the content of the specified key as an IEnumerable>string>. /// </summary> /// <param name="term"></param> /// <param name="key"></param> /// <returns></returns> public static IEnumerable <string> GetStringCollection(this DTO.QueryComposer.QueryComposerTermDTO term, string key) { var token = term.GetValue(key); return(token.Values <string>()); }
/// <summary> /// Gets the value as a string from the QueryComposerTermDTO for the specified key. /// </summary> /// <param name="term"></param> /// <param name="key"></param> /// <returns></returns> public static string GetStringValue(this DTO.QueryComposer.QueryComposerTermDTO term, string key) { return((string)term.GetValue(key)); }
/// <summary> /// Gets the JToken from the QueryComposerTermDTO for the specified key. /// </summary> /// <param name="term"></param> /// <param name="key"></param> /// <returns></returns> public static Newtonsoft.Json.Linq.JToken GetValue(this DTO.QueryComposer.QueryComposerTermDTO term, string key) { return(((Newtonsoft.Json.Linq.JObject)term.Values["Values"]).GetValue(key)); }
/// <summary> /// Gets the JObject representing the term values from the specified QueryComposerTermDTO. /// </summary> /// <param name="term"></param> /// <returns></returns> public static Newtonsoft.Json.Linq.JObject GetValuesJObject(this DTO.QueryComposer.QueryComposerTermDTO term) { return(term.Values["Values"] as Newtonsoft.Json.Linq.JObject); }