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); }
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); }