{"id":13629536,"url":"https://github.com/enisn/AutoFilterer","last_synced_at":"2025-04-17T09:34:35.284Z","repository":{"id":43870169,"uuid":"196248298","full_name":"enisn/AutoFilterer","owner":"enisn","description":"AutoFilterer is a mini filtering framework library for dotnet. The main purpose of the library is to generate LINQ expressions for Entities over DTOs automatically. The first aim is to be compatible with Open API 3.0 Specifications","archived":false,"fork":false,"pushed_at":"2024-03-19T07:25:10.000Z","size":5095,"stargazers_count":434,"open_issues_count":16,"forks_count":36,"subscribers_count":12,"default_branch":"develop","last_synced_at":"2024-05-01T14:50:30.068Z","etag":null,"topics":["aspnetcore","aspnetcoremvc","automatic-filtering","automation","csharp","dotnet","dtos","filter","filtering","linq","paginations","query","query-engine","querystring","range","sorting","swagger"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/enisn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"enisn","patreon":"enisn","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":"https://www.buymeacoffee.com/enisn"}},"created_at":"2019-07-10T17:30:01.000Z","updated_at":"2024-04-27T08:07:59.000Z","dependencies_parsed_at":"2023-02-10T02:00:30.378Z","dependency_job_id":"9b726880-3be9-40db-8bba-8fd66f26c6ab","html_url":"https://github.com/enisn/AutoFilterer","commit_stats":{"total_commits":414,"total_committers":7,"mean_commits":"59.142857142857146","dds":0.2125603864734299,"last_synced_commit":"2bc72d279071a144815599d14e6dfbf63899c122"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enisn%2FAutoFilterer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enisn%2FAutoFilterer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enisn%2FAutoFilterer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enisn%2FAutoFilterer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/enisn","download_url":"https://codeload.github.com/enisn/AutoFilterer/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249331876,"owners_count":21252660,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aspnetcore","aspnetcoremvc","automatic-filtering","automation","csharp","dotnet","dtos","filter","filtering","linq","paginations","query","query-engine","querystring","range","sorting","swagger"],"created_at":"2024-08-01T22:01:13.075Z","updated_at":"2025-04-17T09:34:34.834Z","avatar_url":"https://github.com/enisn.png","language":"C#","readme":"\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"15%\"\u003e\n\n ![Logo](https://github.com/enisn/AutoFilterer/blob/master/art/auto_filterer_icon.png?raw=true) \n\n\u003c/td\u003e\n\u003ctd\u003e\n\n # AutoFilterer\n\nAutoFilterer is a mini filtering framework library for dotnet.\nThe main purpose of the library is to generate LINQ expressions for Entities over DTOs automatically. Creating queries without writing any expression code is the most powerful feature that is provided. The first aim of AutoFilterer is to be compatible with Open API 3.0 Specifications, unlike oData \u0026 GraphQL.\n\n\u003e This library **does not** generate database queries directly. It generates LINQ Expressions.\n\nYou can check [Documentation](https://enisn-projects.io/docs/en/AutoFilterer/) for getting started.\n\n[![Nuget](https://img.shields.io/nuget/v/AutoFilterer?logo=nuget)](https://www.nuget.org/packages/AutoFilterer/)\n[![Docs](https://img.shields.io/badge/Visit-Docs-orange)](https://enisn-projects.io/docs/en/AutoFilterer/)\n[![CodeFactor](https://www.codefactor.io/repository/github/enisn/autofilterer/badge)](https://www.codefactor.io/repository/github/enisn/autofilterer)\n\u003ca href=\"https://codeclimate.com/github/enisn/AutoFilterer/maintainability\"\u003e\u003cimg src=\"https://api.codeclimate.com/v1/badges/9d3ef7b380c4257c04fd/maintainability\" /\u003e\u003c/a\u003e\n[![.NET Pipeline](https://github.com/enisn/AutoFilterer/actions/workflows/dotnetcore.yml/badge.svg)](https://github.com/enisn/AutoFilterer/actions/workflows/dotnetcore.yml)\n\u003ca href=\"https://gitmoji.carloscuesta.me\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/gitmoji-%20😜%20😍-FFDD67.svg?style=flat-square\" alt=\"Gitmoji\"\u003e\n\u003c/a\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n## Getting Started\n\n- Install `AutoFilterer` NuGet package from [here](https://www.nuget.org/packages/AutoFilterer/).\n\nVsit [visit documentation](https://enisn-projects.io/docs/en/AutoFilterer/) to learn how to use AutoFilterer.\n\n[↗️ Open in Visual Studio Code](https://open.vscode.dev/enisn/AutoFilterer)\n***\n\n## Usage\nA quick example is presented below. Reading [documentation](https://enisn-projects.io/docs/en/AutoFilterer/) is highly recommended for detailed features.\n\n- Create a filter model and make sure property names match to Entity properties.\n\n```csharp\npublic class ProductFilter : PaginationFilterBase\n{\n  public Range\u003cdouble\u003e Price { get; set; }\n\n  [ToLowerContainsComparison]\n  public string Name { get; set; }\n  \n  [StringFilteringOptions(StringFilterOption.Equals)]\n  public string Locale { get; set; }\n}\n```\n\n```csharp\n  public IActionResult GetProducts([FromQuery]ProductFilter filter)\n  {\n    var products = db.Products.ApplyFilter(filter).ToList();\n    return Ok(products);\n  }\n```\n\nDon't forget to [visit Wiki](../../wiki) for better understanding of usage.\n\n***\n\n## AutoFilterer.Swagger\nAll parameters support OpenAPI 3.0 Specifications 👍\n\nImprove your swagger documentation via using [AutoFilterer.Swagger](https://github.com/enisn/AutoFilterer/tree/master/src/AutoFilterer.Swagger)\n\n***\n\n## AutoFilterer.Generators\nAutoFilterer.Generators aims to generate filter objects from entities automatically via using [dotnet source generators](https://devblogs.microsoft.com/dotnet/introducing-c-source-generators/). \n\nVisit [documentation of Generators](https://enisn-projects.io/docs/en/AutoFilterer/latest/generators/AutoFilterer-Generators)\n\n---\n\n## Performance\n\nSee Benchmark Results from [here](https://enisn-projects.io/docs/en/AutoFilterer/latest/Benchmark-Results)\n\n---\n\n## Sponsors\n\n- [gpproton](https://github.com/gpproton)\n- [Sumgon](https://github.com/Sumgon)\n\n---\n\n## Stats\n![Alt](https://repobeats.axiom.co/api/embed/77652bec1cd20431b359e4c9042a0f343da5d252.svg \"Repobeats analytics image\")\n\n","funding_links":["https://github.com/sponsors/enisn","https://patreon.com/enisn","https://www.buymeacoffee.com/enisn"],"categories":["Do not want to test 112 ( old ISourceGenerator )"],"sub_categories":["1. [ThisAssembly](https://ignatandrei.github.io/RSCG_Examples/v2/docs/ThisAssembly) , in the [EnhancementProject](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#enhancementproject) category"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fenisn%2FAutoFilterer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fenisn%2FAutoFilterer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fenisn%2FAutoFilterer/lists"}