# rafaelacuoco/unecontintegrationstools architecture

> Architecture diagram of the GitHub repository rafaelacuoco/unecontintegrationstools, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-10). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/rafaelacuoco/unecontintegrationstools
- Repository: https://github.com/rafaelacuoco/unecontintegrationstools

## Overview

UneCont Integration Tools is a modular Windows Forms desktop app for integration-support tickets. The main workflow is: the user selects a feature card, the shell opens its module, and the integration queue feature validates filters and queries SQL Server. A separate configuration screen loads, tests, activates, and saves SQL or Microsoft Entra connection settings; the shell also restores saved settings and displays connection status. The graph includes documented capabilities whose implementation was not sampled. Edges are limited to relationships shown in excerpts, source-index references, or the README; unsampled details are omitted where the call path is uncertain.

Main entry points: [`Infrastructure/Database/SqlConnectionFactory.cs`](https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Infrastructure/Database/SqlConnectionFactory.cs) (SQL connection factory), [`UI/MainPresenter.cs`](https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/UI/MainPresenter.cs) (Shell presenter), [`Features/DatabaseConfig/DatabaseConfigPresenter.cs`](https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Features/DatabaseConfig/DatabaseConfigPresenter.cs) (Connection setup presenter), [`Infrastructure/DependencyInjection/ServiceCollectionExtensions.cs`](https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Infrastructure/DependencyInjection/ServiceCollectionExtensions.cs) (Dependency registrations)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_shell["Desktop shell"]
  node_program["Application startup<br/>[Program.cs]"]
  node_main["Main window<br/>[MainForm.cs]"]
  node_mainpresenter["Shell presenter<br/>[MainPresenter.cs]"]
  node_dashboard["Feature dashboard"]
  node_featurecontract["Feature module contract<br/>[IFeatureModule.cs]"]
end

subgraph group_config["Connection setup"]
  node_configview["Connection settings view"]
  node_configpresenter["Connection setup presenter"]
  node_settingsdto["Connection settings DTO"]
  node_authmode["Authentication modes"]
  node_connectionresult["Connection test result"]
  node_settingsvalidator["Settings validator"]
end

subgraph group_integrations["Integration queue"]
  node_integrationsmodule["Integrations module"]
  node_hubview["Integrations hub view"]
  node_hubpresenter["Integrations hub presenter"]
  node_queueview["Queue screen"]
  node_queuepresenter["Queue presenter"]
  node_queuedtos["Queue filter and results"]
  node_queuevalidator["Queue filter validator"]
  node_queueservicecontract["Queue service contract"]
  node_queueservice["Queue SQL service"]
end

subgraph group_data["Data and infrastructure"]
  node_settingsstorecontract["Settings store contract"]
  node_localstore[("Local settings store")]
  node_connectioncontract["SQL connection contract"]
  node_connectionfactory["SQL connection factory"]
  node_di["Dependency registrations"]
end

node_user(("Support engineer"))
node_sqlserver[("SQL Server")]

node_user -->|"uses"| node_main
node_program -->|"starts"| node_main
node_main -->|"raises navigation events"| node_mainpresenter
node_mainpresenter -->|"shows home"| node_dashboard
node_dashboard -->|"renders cards"| node_featurecontract
node_mainpresenter -->|"dispatches selection"| node_featurecontract
node_mainpresenter -->|"opens settings"| node_configview
node_configview -->|"raises requests"| node_configpresenter
node_configpresenter -->|"builds settings"| node_settingsdto
node_settingsdto -->|"specifies mode"| node_authmode
node_configpresenter -->|"validates settings"| node_settingsvalidator
node_configpresenter -->|"tests and activates"| node_connectionfactory
node_connectionfactory -->|"returns test result"| node_connectionresult
node_configpresenter -->|"loads and saves"| node_localstore
node_localstore -->|"implements"| node_settingsstorecontract
node_connectionfactory -->|"implements"| node_connectioncontract
node_connectionfactory -->|"opens connections"| node_sqlserver
node_mainpresenter -->|"restores settings"| node_localstore
node_mainpresenter -->|"sets active status"| node_connectionfactory
node_integrationsmodule -->|"implements"| node_featurecontract
node_integrationsmodule -->|"creates hub"| node_hubview
node_hubview -->|"delegates actions"| node_hubpresenter
node_hubpresenter -->|"opens queue"| node_queueview
node_hubpresenter -->|"creates presenter"| node_queuepresenter
node_queueview -->|"raises filter events"| node_queuepresenter
node_queuepresenter -->|"requests queue data"| node_queueservicecontract
node_queueservice -->|"implements"| node_queueservicecontract
node_queueservice -->|"opens SQL connection"| node_connectionfactory
node_queuepresenter -->|"checks connection"| node_connectionfactory
node_di -->|"registers"| node_connectionfactory
node_di -->|"registers"| node_localstore
node_di -->|"registers"| node_queueservice
node_di -->|"registers module"| node_integrationsmodule

click node_program "https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Program.cs"
click node_main "https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/UI/MainForm.cs"
click node_mainpresenter "https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/UI/MainPresenter.cs"
click node_dashboard "https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/UI/Controls/HomeDashboardControl.cs"
click node_featurecontract "https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Core/Interfaces/IFeatureModule.cs"
click node_configview "https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Features/DatabaseConfig/DatabaseConfigControl.cs"
click node_configpresenter "https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Features/DatabaseConfig/DatabaseConfigPresenter.cs"
click node_settingsdto "https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Core/Models/SqlConnectionSettingsDto.cs"
click node_authmode "https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Core/Models/SqlAuthenticationMode.cs"
click node_connectionresult "https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Core/Models/ConnectionTestResult.cs"
click node_settingsvalidator "https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Core/Validators/SqlConnectionSettingsValidator.cs"
click node_settingsstorecontract "https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Core/Interfaces/IConnectionSettingsStore.cs"
click node_localstore "https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Infrastructure/Database/LocalConnectionSettingsStore.cs"
click node_connectioncontract "https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Core/Interfaces/ISqlConnectionFactory.cs"
click node_connectionfactory "https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Infrastructure/Database/SqlConnectionFactory.cs"
click node_integrationsmodule "https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Features/Integracoes/IntegracoesModule.cs"
click node_hubview "https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Features/Integracoes/IntegracoesHubControl.cs"
click node_hubpresenter "https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Features/Integracoes/IntegracoesHubPresenter.cs"
click node_queueview "https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Features/Integracoes/FilaIntegracaoControl.cs"
click node_queuepresenter "https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Features/Integracoes/FilaIntegracaoPresenter.cs"
click node_queuedtos "https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Features/Integracoes/Models/FilaIntegracaoDtos.cs"
click node_queuevalidator "https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Features/Integracoes/Validators/FilaIntegracaoFiltroValidator.cs"
click node_queueservicecontract "https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Features/Integracoes/Services/IFilaIntegracaoService.cs"
click node_queueservice "https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Features/Integracoes/Services/FilaIntegracaoService.cs"
click node_di "https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Infrastructure/DependencyInjection/ServiceCollectionExtensions.cs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_program,node_main,node_mainpresenter,node_dashboard,node_featurecontract toneBlue
class node_configview,node_configpresenter,node_settingsdto,node_authmode,node_connectionresult,node_settingsvalidator,node_sqlserver toneAmber
class node_integrationsmodule,node_hubview,node_hubpresenter,node_queueview,node_queuepresenter,node_queuedtos,node_queuevalidator,node_queueservicecontract,node_queueservice toneMint
class node_settingsstorecontract,node_localstore,node_connectioncontract,node_connectionfactory,node_di toneRose
class node_user toneIndigo
```

## Components

### Desktop shell

- [Application startup](https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Program.cs): `Program.cs`
- [Main window](https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/UI/MainForm.cs): `UI/MainForm.cs`
- [Shell presenter](https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/UI/MainPresenter.cs): `UI/MainPresenter.cs`
- [Feature dashboard](https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/UI/Controls/HomeDashboardControl.cs): `UI/Controls/HomeDashboardControl.cs`
- [Feature module contract](https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Core/Interfaces/IFeatureModule.cs): `Core/Interfaces/IFeatureModule.cs`

### Connection setup

- [Connection settings view](https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Features/DatabaseConfig/DatabaseConfigControl.cs): `Features/DatabaseConfig/DatabaseConfigControl.cs`
- [Connection setup presenter](https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Features/DatabaseConfig/DatabaseConfigPresenter.cs): `Features/DatabaseConfig/DatabaseConfigPresenter.cs`
- [Connection settings DTO](https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Core/Models/SqlConnectionSettingsDto.cs): `Core/Models/SqlConnectionSettingsDto.cs`
- [Authentication modes](https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Core/Models/SqlAuthenticationMode.cs): `Core/Models/SqlAuthenticationMode.cs`
- [Connection test result](https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Core/Models/ConnectionTestResult.cs): `Core/Models/ConnectionTestResult.cs`
- [Settings validator](https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Core/Validators/SqlConnectionSettingsValidator.cs): `Core/Validators/SqlConnectionSettingsValidator.cs`

### Integration queue

- [Integrations module](https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Features/Integracoes/IntegracoesModule.cs): `Features/Integracoes/IntegracoesModule.cs`
- [Integrations hub view](https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Features/Integracoes/IntegracoesHubControl.cs): `Features/Integracoes/IntegracoesHubControl.cs`
- [Integrations hub presenter](https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Features/Integracoes/IntegracoesHubPresenter.cs): `Features/Integracoes/IntegracoesHubPresenter.cs`
- [Queue screen](https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Features/Integracoes/FilaIntegracaoControl.cs): `Features/Integracoes/FilaIntegracaoControl.cs`
- [Queue presenter](https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Features/Integracoes/FilaIntegracaoPresenter.cs): `Features/Integracoes/FilaIntegracaoPresenter.cs`
- [Queue filter and results](https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Features/Integracoes/Models/FilaIntegracaoDtos.cs): `Features/Integracoes/Models/FilaIntegracaoDtos.cs`
- [Queue filter validator](https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Features/Integracoes/Validators/FilaIntegracaoFiltroValidator.cs): `Features/Integracoes/Validators/FilaIntegracaoFiltroValidator.cs`
- [Queue service contract](https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Features/Integracoes/Services/IFilaIntegracaoService.cs): `Features/Integracoes/Services/IFilaIntegracaoService.cs`
- [Queue SQL service](https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Features/Integracoes/Services/FilaIntegracaoService.cs): `Features/Integracoes/Services/FilaIntegracaoService.cs`

### Data and infrastructure

- [Settings store contract](https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Core/Interfaces/IConnectionSettingsStore.cs): `Core/Interfaces/IConnectionSettingsStore.cs`
- [Local settings store](https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Infrastructure/Database/LocalConnectionSettingsStore.cs): `Infrastructure/Database/LocalConnectionSettingsStore.cs`
- [SQL connection contract](https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Core/Interfaces/ISqlConnectionFactory.cs): `Core/Interfaces/ISqlConnectionFactory.cs`
- [SQL connection factory](https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Infrastructure/Database/SqlConnectionFactory.cs): `Infrastructure/Database/SqlConnectionFactory.cs`
- [Dependency registrations](https://github.com/rafaelacuoco/unecontintegrationstools/blob/main/Infrastructure/DependencyInjection/ServiceCollectionExtensions.cs): `Infrastructure/DependencyInjection/ServiceCollectionExtensions.cs`

### Other components

- **Support engineer**
- **SQL Server**

## Connections

- Support engineer → Main window: uses (evidence: `README.md`)
- Application startup → Main window: starts (evidence: `Program.cs`)
- Main window → Shell presenter: raises navigation events (evidence: `UI/MainForm.cs`)
- Shell presenter → Feature dashboard: shows home (evidence: `UI/MainPresenter.cs`)
- Feature dashboard → Feature module contract: renders cards (evidence: `UI/Controls/HomeDashboardControl.cs`)
- Shell presenter → Feature module contract: dispatches selection (evidence: `UI/MainPresenter.cs`)
- Shell presenter → Connection settings view: opens settings (evidence: `UI/MainPresenter.cs`)
- Connection settings view → Connection setup presenter: raises requests (evidence: `Features/DatabaseConfig/DatabaseConfigControl.cs`)
- Connection setup presenter → Connection settings DTO: builds settings (evidence: `Features/DatabaseConfig/DatabaseConfigPresenter.cs`)
- Connection settings DTO → Authentication modes: specifies mode (evidence: `Core/Models/SqlConnectionSettingsDto.cs`)
- Connection setup presenter → Settings validator: validates settings (evidence: `Features/DatabaseConfig/DatabaseConfigPresenter.cs`)
- Connection setup presenter → SQL connection factory: tests and activates (evidence: `Features/DatabaseConfig/DatabaseConfigPresenter.cs`)
- SQL connection factory → Connection test result: returns test result (evidence: `Infrastructure/Database/SqlConnectionFactory.cs`)
- Connection setup presenter → Local settings store: loads and saves (evidence: `Features/DatabaseConfig/DatabaseConfigPresenter.cs`)
- Local settings store → Settings store contract: implements (evidence: `Infrastructure/Database/LocalConnectionSettingsStore.cs`)
- SQL connection factory → SQL connection contract: implements (evidence: `Infrastructure/Database/SqlConnectionFactory.cs`)
- SQL connection factory → SQL Server: opens connections (evidence: `README.md`)
- Shell presenter → Local settings store: restores settings (evidence: `UI/MainPresenter.cs`)
- Shell presenter → SQL connection factory: sets active status (evidence: `UI/MainPresenter.cs`)
- Integrations module → Feature module contract: implements (evidence: `Features/Integracoes/IntegracoesModule.cs`)
- Integrations module → Integrations hub view: creates hub (evidence: `Features/Integracoes/IntegracoesModule.cs`)
- Integrations hub view → Integrations hub presenter: delegates actions (evidence: `Features/Integracoes/IntegracoesHubPresenter.cs`)
- Integrations hub presenter → Queue screen: opens queue (evidence: `Features/Integracoes/IntegracoesHubPresenter.cs`)
- Integrations hub presenter → Queue presenter: creates presenter (evidence: `Features/Integracoes/IntegracoesHubPresenter.cs`)
- Queue screen → Queue presenter: raises filter events (evidence: `Features/Integracoes/FilaIntegracaoPresenter.cs`)
- Queue presenter → Queue service contract: requests queue data (evidence: `Features/Integracoes/FilaIntegracaoPresenter.cs`)
- Queue SQL service → Queue service contract: implements (evidence: `Features/Integracoes/Services/FilaIntegracaoService.cs`)
- Queue SQL service → SQL connection factory: opens SQL connection (evidence: `Features/Integracoes/Services/FilaIntegracaoService.cs`)
- Queue presenter → SQL connection factory: checks connection (evidence: `Features/Integracoes/FilaIntegracaoPresenter.cs`)
- Dependency registrations → SQL connection factory: registers (evidence: `Infrastructure/DependencyInjection/ServiceCollectionExtensions.cs`)
- Dependency registrations → Local settings store: registers (evidence: `Infrastructure/DependencyInjection/ServiceCollectionExtensions.cs`)
- Dependency registrations → Queue SQL service: registers (evidence: `Infrastructure/DependencyInjection/ServiceCollectionExtensions.cs`)
- Dependency registrations → Integrations module: registers module (evidence: `Infrastructure/DependencyInjection/ServiceCollectionExtensions.cs`)
