Skip to content

Latest commit

 

History

History
85 lines (62 loc) · 3.17 KB

File metadata and controls

85 lines (62 loc) · 3.17 KB

FlexQuery.NET.Adapters.AgGrid

NuGet Version

AG Grid Server-Side Row Model (SSRM) adapter for FlexQuery.NET.

When to Use This Package

Install this package if your application uses AG Grid Server-Side Row Model (SSRM).

The adapter translates AG Grid SSRM request payloads into FlexQuery QueryOptions and converts query results back into the response format expected by AG Grid.

Installation

dotnet add package FlexQuery.NET.Adapters.AgGrid

Quick Start

using FlexQuery.NET.Adapters.AgGrid;

[HttpPost("grid-data")]
public async Task<IActionResult> GetGridData([FromBody] AgGridRequest request)
{
    var options = request.ToQueryOptions();

    var result = await _context.Products.FlexQueryAsync(options, opts =>
    {
        opts.AllowedFields = new HashSet<string> { "Id", "Name", "Price", "Category" };
    }, cancellationToken: cancellationToken);

    var response = result.ToAgGridServerSideResponse(request);

    return Ok(response);
}

Supported Features

  • Filtering
  • Sorting
  • Pagination
  • Row Grouping
  • Aggregations
  • Projection

Features

  • Request ParsingToQueryOptions() (backed by AgGridQueryOptionsParser) converts AG Grid requests to QueryOptions
  • Response ConversionToAgGridServerSideResponse() returns data in AG Grid's expected format with group metadata (key, level, childCount)
  • Server-Side Row Model Support — Pagination, filtering, sorting, row grouping, and aggregations
  • Aggregate Alias Mapping — Single-aggregate columns map back to the original field name
  • camelCase OptionToAgGridServerSideResponse(request, camelCase: true) converts PascalCase row-data property names to camelCase for camelCase column definitions
  • No Database Calls — The adapter only transforms JSON — zero overhead

Filter Mapping

AG Grid Filter FlexQuery Operator
equals eq
notEqual neq
contains contains
startsWith startswith
endsWith endswith
lessThan lt
greaterThan gt
lessThanOrEqual lte
greaterThanOrEqual gte
inRange between
blank isnull
notBlank isnotnull

Filter mappings are applied per filter type (text, number, date); date filters additionally map after/before to gt/lt.

Related Packages

Documentation