public async Task <IActionResult> Distinct([FromRoute] DatabaseRouteParameters routeParameters, [FromRoute] string field, [FromBody] string findExpression)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            string distinctResults = await _service.GetDistinctAsync(routeParameters.DatabaseName, routeParameters.CollectionName, field, findExpression);

            return(Ok(distinctResults));
        }
        public async Task <IActionResult> CountObjects([FromRoute] DatabaseRouteParameters routeParameters, [FromBody] string countExpression)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var countResults = await _service.CountAsync(routeParameters.DatabaseName, routeParameters.CollectionName, countExpression);

            return(Ok(countResults));
        }
        public async Task <IActionResult> SearchObjects([FromQuery] string qs, [FromRoute] DatabaseRouteParameters routeParameters, [FromQuery] FindQueryParameters queryParameters)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var findExpression = Foundation.Sdk.Converters.SearchStringConverter.BuildFindExpressionFromQuery(qs);
            var findResults    = await _service.FindAsync(routeParameters.DatabaseName, routeParameters.CollectionName, findExpression, queryParameters.Start, queryParameters.Limit, queryParameters.SortFieldName, System.ComponentModel.ListSortDirection.Ascending);

            return(Ok(findResults));
        }
Пример #4
0
        public async Task <IActionResult> MultiInsert([FromRoute] DatabaseRouteParameters routeParameters, [FromBody] string payload)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var results = await _repository.InsertManyAsync(routeParameters.DatabaseName, routeParameters.CollectionName, payload);

            return(Ok(GetInsertedJsonResult(results)));
        }
Пример #5
0
        public async Task <IActionResult> Aggregate([FromRoute] DatabaseRouteParameters routeParameters, [FromBody] string payload)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var aggregateResults = await _repository.AggregateAsync(routeParameters.DatabaseName, routeParameters.CollectionName, payload);

            return(Ok(aggregateResults));
        }
Пример #6
0
        public async Task <IActionResult> InsertObjectWithNoId([FromRoute] DatabaseRouteParameters routeParameters, [FromBody] string json, [FromQuery] ResponseFormat responseFormat = ResponseFormat.EntireObject)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            string document = await _service.InsertAsync(routeParameters.DatabaseName, routeParameters.CollectionName, null, json);

            string id = GetObjectId(document);

            if (responseFormat == ResponseFormat.OnlyId)
            {
                document = GetInsertedJsonResult(new string[] { id }).ToString();
            }
            return(CreatedAtAction(nameof(GetObject), new { id = id, db = routeParameters.DatabaseName, collection = routeParameters.CollectionName }, document));
        }
        public async Task <IActionResult> GetAllObjectsInCollection([FromRoute] DatabaseRouteParameters routeParameters)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var exists = await _service.DoesCollectionExist(routeParameters.DatabaseName, routeParameters.CollectionName);

            if (!exists)
            {
                return(CollectionNotFound(routeParameters.CollectionName));
            }

            var findResults = await _service.GetAllAsync(routeParameters.DatabaseName, routeParameters.CollectionName);

            return(Ok(findResults));
        }