An open API service indexing awesome lists of open source software.

https://github.com/andreavitali/netcorekendogridbinding

Automatic server side filtering/paging/sorting/grouping for Kendo UI Angular, using ASP.NET Core 3.0.
https://github.com/andreavitali/netcorekendogridbinding

automapper dynamic-linq kendo-ui netcore3

Last synced: 5 days ago
JSON representation

Automatic server side filtering/paging/sorting/grouping for Kendo UI Angular, using ASP.NET Core 3.0.

Awesome Lists containing this project

README

          

# NetCoreKendoAngularGridBinding

## Description
Automatic server side filtering/paging/sorting/grouping for Kendo UI Angular, using ASP.NET Core 3.0.

## Main features
- Injectable naming service to convert JSON/API field names to C#/EF names (e.g. from snake case to pascal case)
- Automapper is used to map DB entities to DTOs, and back from DTO-based grid clauses to expressions that could be used in Dynamic LINQ/EntityFramework.

## Notes
Angular application is not developed.
A complete request string generated by Kendo using `toDataSourceRequestString` is shown here:

```
page=1&pageSize=10&
filter=(Salary~gte~1500~and~(FullName~startswith~'b'~or~FullName~startswith~'r')~and~Recruitment~gte~datetime'2015-01-01T00-00-00')&
sort=FullName-asc~Salary-asc&
group=Department-asc
```

Filter clauses have a little tricky syntax, so i'll give you some other examples:
- Two columns, one composite filter and one single filter
```
filter=((FirstName~startswith~'c'~or~FirstName~startswith~'d')~and~Salary~gte~1500)
```
- One column, composite filter
```
filter=(FirstName~startswith~'c'~or~FirstName~startswith~'d')
```
- Two columns, single filters
```
filter=(FirstName~contains~'c'~and~Salary~gte~1500)
```
- Single column, single filter
```
filter=FirstName~eq~'Bob'
```

Full kendo documentation is [here](https://www.telerik.com/kendo-angular-ui/components/dataquery/mvc-integration/)

## Known limitations
- No aggregates
- No complex mapping scenarios ()

## Library used
- [System.Linq.Dynamic.Core](https://github.com/StefH/System.Linq.Dynamic.Core)
- [Automapper](https://github.com/AutoMapper/AutoMapper)