Esempio n. 1
0
        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)));
        }
Esempio n. 2
0
        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();
        }