public IHttpActionResult PostQuery( string collectionName, RemoteMongoQuery remoteMongoQuery) { var count = _mongoRepository.Count(collectionName, remoteMongoQuery.Query); var pageData = new Page { Current = remoteMongoQuery.Page.GetValueOrDefault(1), Size = remoteMongoQuery.PageSize.GetValueOrDefault(10), }.Calculate(count); return(Ok(_mongoRepository.Find( collectionName, remoteMongoQuery.Query, pageData.Size, pageData.Skip, remoteMongoQuery.Fields, remoteMongoQuery.SortBy))); }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { if (CanConvert(objectType)) { var json = JObject.Load(reader); JToken token; var remoteMongoQuery = new RemoteMongoQuery(); if (json.TryGetValue("query", out token)) { remoteMongoQuery.Query = new QueryDocument(BsonDocument.Parse(token.ToString())); } if (json.TryGetValue("sortBy", out token)) { remoteMongoQuery.SortBy = new SortByDocument(BsonDocument.Parse(token.ToString())); } if (json.TryGetValue("fields", out token)) { remoteMongoQuery.Fields = new FieldsDocument(BsonDocument.Parse(token.ToString())); } if (json.TryGetValue("page", out token)) { remoteMongoQuery.Page = token.Value <long>(); } if (json.TryGetValue("pageSize", out token)) { remoteMongoQuery.PageSize = token.Value <long>(); } return(remoteMongoQuery); } throw new NotImplementedException(); }