We need to create a server-side service that has the following functionalities:
1. Connect to the database and see what processes needs to be run, periodically. Each process has its own logic and needs to run on separate threads.
We already have the database structure and procedures related to the processes.
The processes are a fixed list and if new processes will appear new cod will be written, so it is not dynamic.
The process list is as follows:
=> New processes:
- Import of partner files - it connects to a FTP and imports the files it finds and moves the file to another location for future audit if needed;
=> Existing processes that need to be converted:
- Generation of .pdf files - we already have the logic implemented in a form based C# project and we will make it available to you;
- Import of cashing files - it connects to a FTP and imports the files it finds - we already have the logic implemented in a form based C# project and will make it available to you;
Each process might end with:
- success OR
- errors that need to be logged for audit
Everything needs to be logged in the database (structure already exists).
2. The service will use existing libraries from the existing form based C# project so we do not need to rewrite existing code.
3. For the service we need install, uninstall and update functionalities.
4. The service update functionality should be automatic (without user intervention) and periodically verify a predefined website if there is a new version and if so, automatically install it - this operation should be logged into the database.
When there is a new version, also dll libraries might be changed so it has to update those also.
5. The install/uninstall functionalities should be automatised so we have an exe/bat/msi file that does all the jobs needed to install/uninstall the service to/from a certaind machine.
---
Additional information:
- we are using MS SQL 2014 as database
- we already have the libraries for .pdf generation, ftp, etc.