コード例 #1
0
        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());
        }
コード例 #2
0
 public static SearchParams GetSearchParams(this HttpRequestMessage request)
 {
     var parameters = request.TupledParameters();
     UriParamList actualParameters = new UriParamList(parameters);
     var searchCommand = SearchParams.FromUriParamList(parameters);
     return searchCommand;
 }
コード例 #3
0
        public static SearchParams GetSearchParams(this HttpRequestMessage request)
        {
            var          parameters       = request.TupledParameters();
            UriParamList actualParameters = new UriParamList(parameters);
            var          searchCommand    = SearchParams.FromUriParamList(parameters);

            return(searchCommand);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
ファイル: RestUrl.cs プロジェクト: tiloc/fhir-net-api
        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); 
        }
コード例 #6
0
        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;
        }