public void ParseAndSerializeParams() { var q = new SearchParams(); q.Add("_query", "special"); q.Add("_count", "31"); q.Add("_summary", "data"); q.Add("_sort:desc", "sorted"); q.Add("_sort:asc", "sorted2"); q.Add("_include", "Patient.name"); q.Add("_include", "Observation.subject"); q.Add("image:missing", "true"); q.Add("_elements", "field1,field2"); var output = q.ToUriParamList().ToQueryString(); Assert.AreEqual("_query=special&_count=31&_include=Patient.name&_include=Observation.subject&_sort%3Adesc=sorted&_sort%3Aasc=sorted2&_summary=data&_elements=field1%2Cfield2&image%3Amissing=true", output); var q2 = SearchParams.FromUriParamList(UriParamList.FromQueryString(output)); Assert.AreEqual(q.Query, q2.Query); Assert.AreEqual(q.Count, q2.Count); Assert.AreEqual(q.Summary, q2.Summary); CollectionAssert.AreEquivalent(q.Sort.ToList(), q2.Sort.ToList()); CollectionAssert.AreEquivalent(q.Include.ToList(), q2.Include.ToList()); CollectionAssert.AreEquivalent(q.Parameters.ToList(), q2.Parameters.ToList()); CollectionAssert.AreEquivalent(q.Elements.ToList(), q2.Elements.ToList()); }
public static SearchParams GetSearchParams(this HttpRequestMessage request) { var parameters = request.TupledParameters(); UriParamList actualParameters = new UriParamList(parameters); var searchCommand = SearchParams.FromUriParamList(parameters); return searchCommand; }
public static SearchParams GetSearchParams(this HttpRequestMessage request) { var parameters = request.TupledParameters(); UriParamList actualParameters = new UriParamList(parameters); var searchCommand = SearchParams.FromUriParamList(parameters); return(searchCommand); }
public UriParamList ToUriParamList() { var result = new UriParamList(); if (!String.IsNullOrEmpty(Query)) { result.Add(Tuple.Create(SEARCH_PARAM_QUERY, Query)); } if (!String.IsNullOrEmpty(Text)) { result.Add(Tuple.Create(SEARCH_PARAM_TEXT, Text)); } if (!String.IsNullOrEmpty(Content)) { result.Add(Tuple.Create(SEARCH_PARAM_CONTENT, Content)); } if (Count != null) { result.Add(Tuple.Create(SEARCH_PARAM_COUNT, Count.Value.ToString())); } if (Include.Any()) { result.AddRange(Include.Select(i => Tuple.Create(SEARCH_PARAM_INCLUDE, i))); } if (RevInclude.Any()) { result.AddRange(RevInclude.Select(i => Tuple.Create(SEARCH_PARAM_REVINCLUDE, i))); } if (Sort.Any()) { result.AddRange(Sort.Select(s => Tuple.Create(createSortParamName(s.Item2), s.Item1))); } if (Summary != null) { result.Add(Tuple.Create(SEARCH_PARAM_SUMMARY, Summary.Value.ToString().ToLower())); } if (!String.IsNullOrEmpty(Filter)) { result.Add(Tuple.Create(SEARCH_PARAM_FILTER, Filter)); } if (Contained != null) { result.Add(Tuple.Create(SEARCH_PARAM_CONTAINED, Contained.Value.ToString().ToLower())); } if (ContainedType != null) { result.Add(Tuple.Create(SEARCH_PARAM_CONTAINEDTYPE, ContainedType.Value.ToString().ToLower())); } if (Elements.Any()) { result.Add(Tuple.Create(SEARCH_PARAM_ELEMENTS, String.Join(",", Elements))); } result.AddRange(Parameters); return(result); }
public RestUrl(Uri url) { if (!url.IsAbsoluteUri) throw Error.Argument("url", "Must be an absolute url"); if (url.Scheme != "http" && url.Scheme != "https") Error.Argument("uri", "RestUrl must be a http(s) url"); _builder = new UriBuilder(url); if (!String.IsNullOrEmpty(_builder.Query)) _parameters = UriParamList.FromQueryString(_builder.Query); }
public UriParamList ToUriParamList() { var result = new UriParamList(); if (!String.IsNullOrEmpty(Query)) result.Add(Tuple.Create(SEARCH_PARAM_QUERY, Query)); if (!String.IsNullOrEmpty(Text)) result.Add(Tuple.Create(SEARCH_PARAM_TEXT, Text)); if (!String.IsNullOrEmpty(Content)) result.Add(Tuple.Create(SEARCH_PARAM_CONTENT, Content)); if (Count != null) result.Add(Tuple.Create(SEARCH_PARAM_COUNT, Count.Value.ToString())); if (Include.Any()) result.AddRange(Include.Select(i => Tuple.Create(SEARCH_PARAM_INCLUDE, i))); if (RevInclude.Any()) result.AddRange(RevInclude.Select(i => Tuple.Create(SEARCH_PARAM_REVINCLUDE, i))); if (Sort.Any()) result.AddRange(Sort.Select(s => Tuple.Create(createSortParamName(s.Item2), s.Item1))); if (Summary != null) result.Add(Tuple.Create(SEARCH_PARAM_SUMMARY, Summary.Value.ToString().ToLower())); if (!String.IsNullOrEmpty(Filter)) result.Add(Tuple.Create(SEARCH_PARAM_FILTER, Filter)); if (Contained != null) result.Add(Tuple.Create(SEARCH_PARAM_CONTAINED, Contained.Value.ToString().ToLower())); if (ContainedType != null) result.Add(Tuple.Create(SEARCH_PARAM_CONTAINEDTYPE, ContainedType.Value.ToString().ToLower())); if (Elements.Any()) result.Add(Tuple.Create(SEARCH_PARAM_ELEMENTS, String.Join(",",Elements))); result.AddRange(Parameters); return result; }