SSRS Report Scheduler on Windows - 09/06/2025 15:13 EDT

Job ID: 39494093

Budget: $250 – $750 USD

6/9/2025 Update: This job was originally posted with only the Summary section below. The original project text had a lot of very detailed text that was not posted. It is now included here under the Details section. If you submitted a proposal on the original post please review this new post and provide an updated proposal. The key here to this project is the database definition that stores that job schedule. It needs to fit into a SQL Server table or tables and the C# code needs to extract that definition and determine when/if the job should run. Please read the complete Details text for more info.

Summary:

I'm looking for a C# .NET Framework developer to create a report scheduling application that runs on Windows and connects to SQL Server.

Key Requirements:
- Poll SQL Server every 15 minutes
- Execute scheduled SSRS reports (simulated)
- Simple console application for demonstration

Ideal Skills:
- Proficient in C# and .NET Framework 4.7.2
- Experience with SQL Server
- Somewhat familiar with SSRS report scheduling

Please provide:
- Source code
- Data encoding explanation
- Demo console application


Details:

I need a Report Scheduling app that:

1. Runs under Windows.
2. Connects to SQL Server.
3. Written in C# .NET Framework so I put/use the code in a Windows Service.
- .NET Core has a scheduling ability but it's short of what a Windows Service can do and be easily managed.
- So .NET Framework 4.7.2.
4. Polls the SQL Server database via a SQL query every so many N minutes...
5. Retrieves a list of report names that are scheduled to run.
6. Runs them if/when it is time for them to run.
- Note: Just running a Process task is adequate for this job. You do not have to provide or set for running a reports from .NET. I'll handle that.


I just want the code that does the above developed. And an explanation of how the data is encoded into the database table(s). And then extracted.

And a demo program - Console or WinForms - That shows this being done.

I've looked at all the regular .NET libraries - Quartz.net, FluentScheduler, Coravel, Hangfire, etc. ... and I've wasted my time with them. The problem is they schedule things/tasks sure but do not directly address the use case above. The scheduling must be implemented in a database and easily extractable from it:

A. Run every 15 minutes...
B. Query the database on reports that need to be run...
C. Get the list of reports that need to be run...
D. And then simply run them!


What's so difficult about this?

#1. I keep getting sidetracked with other people's production problems again and again so I have not had time to really work on this...And I need to get it done.
- And I don't want to spend a weekend on this.
- I just need a reliable performant core scheduling approach and implementation.
#2. Encoding the scheduling in a relational database seems to completely escaped the above .NET scheduling libraries.
#3. This is a bit challenging as there are several ways to do this...But what is the Optimal Way? With good performance?
#4. And then querying for jobs to run in an efficient way seems also to be a bit of challenge.
- In other words, there seems a lot of ways to do this poorly with poor performance.
- I need this done with a fast and efficient performant SQL query.
#5. Kicking off a process is not hard of course.
- Just use Process.Start() to kick off Notepad.exe for the demo.
- I don't need SSRS starting and parameters built in as I'll code that.
#6. Someone may have already "solved" this problem and have a good workable solution that I can clone or build upon.
- I've searched GitHub in the past but did not find anything usable.
#7. Existing Task Scheduler and commercial code already does this...But I need my own custom C# code implementation.


So the Deliverables are:

1. A SQL Server database tables schema that encodes reports to run:
- Every N minutes
- Hourly
- Every N hours
- Daily
- Every N days
- Weekdays
- Weekends
- Weekly (all days)
- Every N weeks
- Bimonthly
- Monthly
- Quarterly
- Every N months
- Yearly

- The trick/challenge here is how to implement this simply and directly so another app can easily and quickly schedule the reports...
- And the table(s) to be optimally simple...
- And the SQL retrieval mechanism simple as well.
- Do not get overly fancy here...as there is no need.
- You do not have to write/develop the Scheduling Editor.

2. A console or WinForms C# .NET Framework 4.7.2 solution/project that:
- Queries the DB schema every N minutes with a performant query...
- Note: Use simple SQL here hard coded with straight ADO.NET querying.
No one is going to use SQL Injection here on this demo code.
Do NOT use EF or Dapper. Why overly complicate things and make me hunt for the SQL query?
- And extracts/decodes the reports scheduled that need to be run at this particular time...
- Ignores all the other ones that do not need to be run at this time...
- And then runs them in demo mode, i.e. kicks off a Notepad.exe instance with the name of the report to run in the Notepad instance.
- Do not get overly fancy here. No need. Straight simple code.

3. A simple explanation on how the scheduling is:
- Implemented/Encoded in the database.
- Decoded by the C# code.
- And how it is determined what to run when.
- This can either be a simple Word or text document...
- Or a video going over it.

Let me know any questions...And if you already have done something like this then should be be straightforward.

- Grant
Related categories: .NET C# Programming Microsoft SQL Server