Dynamic Filters (a.k.a. FilterParseSearchParameters)
This repository includes an example front-end website, and a back-end database, for demonstrating fully-dynamic filtering capabilities (column, operator, value). Fully protected from SQL Injection, and based on "low-code development" principles.
It is the accompanying open-source project for the webinar Advanced Dynamic Search Queries and How to Protect Them.
This is an enhanced version of FilterParseXMLParameters which is available here:
The new version introduces two new methods for dynamically parsing filter sets:
- Json parameter sets.
- Table-Valued Parameters.
As mentioned above, this repository also includes a fully-functional demo web app, implemented in ASP.NET Core MVC + Angular, to demonstrate the intended functionality on the front-end side.
The demo web app was built based on the following tutorial: https://medium.com/@levifuller/building-an-angular-application-with-asp-net-core-in-visual-studio-2017-visualized-f4b163830eaa
- Node.js Installed
- .NET Core Installed
- Microsoft SQL Server 2016 version or newer
- Microsoft Visual Studio 2017 Community
- SQL Server Data Tools (SSDT) for Visual Studio
Installation & Setup
- Start by forking or cloning this repository to your computer, and opening the DynamicFilters solution in Visual Studio.
- Creating the Database: Do one of the following:
- Optionally: Change the connection string in
\DemoWebApp\appsettings.jsonin case you're not using default settings (localhost server, DemoDB database, Windows Authentication).
- This should only be done once: Right click on the
run_me_first_npm_init.batexecutable and Run it as Administrator , to install all angular dependencies and build the app.
- Whenever you want to run the app: Right click on the
run_core_server.batexecutable and Run it as Administrator.
- The web app should now be available at http://localhost:26048/client.html
This GitHub repository also includes an accompanying Powerpoint presentation, available here:
Main Stored Procedures
The "FilterParse" stored procedures are the "main engine" for this solution. They can be found here: