Merge branch 'master' of https://github.com/PoweredSoft/DynamicLinq
This commit is contained in:
commit
524c30feba
39
README.md
39
README.md
@ -117,3 +117,42 @@ var result = queryable.ToListAsync().Result;
|
||||
var first = result.FirstOrDefault() as Author;
|
||||
Assert.AreEqual(first?.FirstName, "David");
|
||||
```
|
||||
|
||||
### How it can be used in a web api
|
||||
|
||||
```csharp
|
||||
[HttpGet][Route("FindClients")]
|
||||
public IHttpActionResult FindClients(string filterField = null, string filterValue = null,
|
||||
string sortProperty = "Id", int? page = null, int pageSize = 50)
|
||||
{
|
||||
var ctx = new MyDbContext();
|
||||
var query = ctx.Clients.AsQueryable();
|
||||
|
||||
if (!string.IsNullOrEmpty(filterField) && !string.IsNullOrEmpty(filterValue))
|
||||
query = query.Query(t => t.Contains(filterField, filterValue)).OrderBy(sortProperty);
|
||||
|
||||
// count.
|
||||
var clientCount = query.Count();
|
||||
int? pages = null;
|
||||
|
||||
if (page.HasValue && pageSize > 0)
|
||||
{
|
||||
if (clientCount == 0)
|
||||
pages = 0;
|
||||
else
|
||||
pages = clientCount / pageSize + (clientCount % pageSize != 0 ? 1 : 0);
|
||||
}
|
||||
|
||||
if (page.HasValue)
|
||||
query = query.Skip((page.Value-1) * pageSize).Take(pageSize);
|
||||
|
||||
var clients = query.ToList();
|
||||
|
||||
return Ok(new
|
||||
{
|
||||
total = clientCount,
|
||||
pages = pages,
|
||||
data = clients
|
||||
});
|
||||
}
|
||||
```
|
||||
|
Loading…
Reference in New Issue
Block a user