# SurveillanceClient .NET 10 host for driving the vendor `RSNet.dll` (32-bit) to download recorded video from a surveillance NVR/DVR. ## Layout - `src/SurveillanceClient.Core` — class library that wraps the `RSNet.dll` native exports behind a service interface (`IRsNetClient`). - `src/SurveillanceClient.Cli` — console host used for iterative, manual testing of the Core library against a real device. ## Platform `RSNet.dll` is a 32-bit Visual Studio DLL using `__stdcall`. Every project in this solution targets `x86` via `Directory.Build.props`. ## Running The vendor DLL and its dependencies live in `i:\Apps\Surveillance_client`. The CLI sets that directory as the native DLL search path at startup so the DLL and its `.ini` config are found. ## Credentials Credentials are **never committed**. Configure them via .NET user secrets (recommended) or a `appsettings.Local.json` file (ignored by `.gitignore`). ### User secrets (recommended) ```powershell cd src/SurveillanceClient.Cli dotnet user-secrets set "Device:Host" "192.168.100.92" dotnet user-secrets set "Device:Port" "9000" dotnet user-secrets set "Device:Username" "admin" dotnet user-secrets set "Device:Password" "your-password-here" ``` ### appsettings.Local.json (alternative) Create `src/SurveillanceClient.Cli/appsettings.Local.json`: ```json { "Device": { "Host": "192.168.100.92", "Port": 9000, "Username": "admin", "Password": "your-password-here" } } ``` ## Build / Run ```powershell cd SurveillanceClient dotnet build dotnet run --project src/SurveillanceClient.Cli ```