Skip to content

Conversation

@magesoe
Copy link
Contributor

@magesoe magesoe commented Jul 10, 2025

No description provided.

@magesoe magesoe requested a review from Copilot July 10, 2025 07:59
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR introduces advanced filter grouping capabilities by adding a dedicated WhereGroupBuilder, integrating attribute resolution and value conversion services into the main query builder, and supplying extension methods for common filter patterns.

  • Added WhereGroupBuilder to collect grouped filter conditions with AND/OR logic
  • Updated QueryExpressionBuilder to use IAttributeNameResolver and IValueConverter and expose grouping methods (WhereGroup, OrWhereGroup, etc.)
  • Introduced extension methods (WhereEqual, WhereLike, WhereIn, etc.) and validated grouping via new tests

Reviewed Changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
test/QueryBuilder.Tests/QueryExpressionBuilderTests.cs Added tests for various grouped filter scenarios
src/QueryBuilder/WhereGroupBuilder.cs New builder for grouped conditions (incorrect namespace)
src/QueryBuilder/Services/ValueConverter.cs Implements IValueConverter (missing LINQ using)
src/QueryBuilder/Services/AttributeNameResolver.cs Implements IAttributeNameResolver
src/QueryBuilder/QueryExpressionBuilder.cs Refactored to use resolver/converter, added grouping APIs
src/QueryBuilder/Interfaces/IValueConverter.cs Defines converter interface
src/QueryBuilder/Interfaces/IAttributeNameResolver.cs Defines attribute name resolver interface
src/QueryBuilder/Extensions/WhereGroupBuilderExtensions.cs Added extension methods for common filter patterns
Comments suppressed due to low confidence (2)

src/QueryBuilder/Extensions/WhereGroupBuilderExtensions.cs:1

  • [nitpick] There are many new extension methods for WhereGroupBuilder here but no unit tests covering them. Consider adding tests to verify these common filter patterns behave correctly.
using System.Linq.Expressions;

src/QueryBuilder/Services/ValueConverter.cs:25

  • LINQ extension methods like Cast, Select, and ToArray are used here but there is no using System.Linq; directive. Add it (unless relying on implicit usings) to avoid compile errors.
                .Cast<object>()

@magesoe magesoe merged commit a942022 into main Jul 10, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants