/// <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); }
public void TestGetPredicate() { var criteria = new DefaultCriteria <SampleAggregateRoot>(t => t.Name == "a"); Assert.Equal("t => (t.Name == \"a\")", criteria.GetPredicate().ToString()); }