示例#1
0
        public async Task <LCSearchResponse <T> > Find()
        {
            string path = "search/select";
            Dictionary <string, object> queryParams = new Dictionary <string, object> {
                { "clazz", className },
                { "limit", limit },
                { "skip", skip }
            };

            if (queryString != null)
            {
                queryParams["q"] = queryString;
            }
            if (highlights != null && highlights.Count() > 0)
            {
                queryParams["highlights"] = string.Join(",", highlights);
            }
            if (includeKeys != null && includeKeys.Count() > 0)
            {
                queryParams["include"] = string.Join(",", includeKeys);
            }
            if (!string.IsNullOrEmpty(sid))
            {
                queryParams["sid"] = sid;
            }
            if (orders != null && orders.Count() > 0)
            {
                queryParams["order"] = string.Join(",", orders);
            }
            if (sortBuilder != null)
            {
                queryParams["sort"] = sortBuilder.Build();
            }

            Dictionary <string, object> response = await LCCore.HttpClient.Get <Dictionary <string, object> >(path, queryParams : queryParams);

            LCSearchResponse <T> ret = new LCSearchResponse <T>();

            ret.Hits = (int)response["hits"];
            ret.Sid  = (string)response["sid"];
            List <object> results = response["results"] as List <object>;
            List <T>      list    = new List <T>();

            foreach (object data in results)
            {
                LCObjectData objectData = LCObjectData.Decode(data as Dictionary <string, object>);
                T            obj        = LCObject.Create(className) as T;
                obj.Merge(objectData);
                list.Add(obj);
            }
            ret.Results = list.AsReadOnly();
            return(ret);
        }
示例#2
0
        public async Task <List <T> > Find()
        {
            string path = $"classes/{ClassName}";
            Dictionary <string, object> parameters = BuildParams();
            Dictionary <string, object> response   = await LeanCloud.HttpClient.Get <Dictionary <string, object> >(path, queryParams : parameters);

            List <object> results = response["results"] as List <object>;
            List <T>      list    = new List <T>();

            foreach (object item in results)
            {
                LCObjectData objectData = LCObjectData.Decode(item as Dictionary <string, object>);
                T            obj        = LCObject.Create(ClassName) as T;
                obj.Merge(objectData);
                list.Add(obj);
            }
            return(list);
        }