public int Count(BarbecueQueryPredicate predicate) { using (var cn = _connectionFactory.CreateConnection()) { int count = cn.Count <Barbecue>(statement => { statement.Where(_predicateFactory.Create(predicate)); statement.WithParameters(predicate); }); return(count); } }
public FormattableString Create(BarbecueQueryPredicate predicate) { var queryFragments = new List <string>(); if (!string.IsNullOrEmpty(predicate.Reason)) { queryFragments.Add($"{nameof(predicate.Reason):C}=@{nameof(predicate.Reason):C}"); } if (queryFragments.Count == 0) { return(null); } string query = string.Concat(string.Join(" AND ", queryFragments)); return($"{query}"); }
public ActionResult Get([FromQuery] BarbecueQueryPredicate predicate) { var request = new QueryPredicateRequest <BarbecueQueryPredicate>() { Predicate = predicate, User = new UserRequest() { Principal = this.User, IpAddress = this.HttpContext.Connection.RemoteIpAddress } }; var response = _app.Query(request); var responseMessage = new ApplicationResult <Barbecue[]>(response); return(responseMessage); }
public Barbecue[] Query(BarbecueQueryPredicate predicate) { using (var cn = _connectionFactory.CreateConnection()) { return(cn.Find <Barbecue>(statement => { statement.Where(_predicateFactory.Create(predicate)); if (predicate.Offset > 0) { statement.Skip(predicate.Offset); } if (predicate.Limit > 0) { statement.Top(predicate.Limit); } statement.WithParameters(predicate); }).ToArray()); } }