Esempio n. 1
0
        /// <inheritdoc />
        public Task BindModelAsync(ModelBindingContext bindingContext)
        {
            if (bindingContext == null)
            {
                throw new ArgumentNullException(nameof(bindingContext));
            }

            var request = bindingContext.ActionContext.HttpContext.Request;

            string body;

            using (var sr = new StreamReader(request.Body))
            {
                body = sr.ReadToEnd();
            }

            var model = string.IsNullOrEmpty(body)
                ? new Query <TCriteria>()
                : JsonConvert.DeserializeObject <Query <TCriteria> >(body);

            model.Order    = model.Order ?? Ordering.Parse(request);
            model.Paging   = model.Paging ?? Pagination.Parse(request);
            model.Criteria = model.Criteria ?? DefaultCriteria.Parse <TCriteria>(request);

            bindingContext.Result = ModelBindingResult.Success(model);

            return(Task.CompletedTask);
        }
Esempio n. 2
0
        public void TestGetPredicate()
        {
            var criteria = new DefaultCriteria <SampleAggregateRoot>(t => t.Name == "a");

            Assert.Equal("t => (t.Name == \"a\")", criteria.GetPredicate().ToString());
        }