QESTNET Internal:Integrator Project Structure
Internal:Integrator Project Structure
All integration projects are a part of the QESTNET GitHub repository.
The brains behind integration can be found in the QESTNET.Sessions.Integration Solution. Individual integrators are then found in the QESTNET.Custom Solution.
Looking at the Custom Solution, an integrator project is usually 1 C# file with multiple classes in it – each class is an individual integrator. Integrators perform actions like:
- Import a client list from an external system
- import a concrete docket from an external system
- Export concrete results to an external system

Each class will inherit from a base integrator class that exposes it as an integrator to the QESTNET Console. The base classes are found in the QESTNET.Sessions.Integration Solution.
There are numerous base classes depending on the function of the integrator, some are:
- DataIntegratorBase (the most basic)
- DbDataSetIntegratorBase
Most of the classes will have a function similar to "Transfer(params object[] conditions)", the specific name depends on the base class inherited from. This function is what gets the integration started and calls any other code necessary to do the job. This method is called from one of 3 places:
- Manually in the QESTNET Console
- A scheduled QESTNET task, configured in the QESTNET Console
- The QESTLab Integration Plugin or "QIntegrator".
The conditions can be any data necessary to make the integrator work. See the respective documentation on either the Console or QIntegrator on how to pass in conditions.
