Commit Graph

28 Commits (main)

Author SHA1 Message Date
SYED MUSTUFA AHMED NAQVI ca825cd642 chore(deploy): add ClickOnce publish profile
Adds the ClickOnce publish profile for UNC deployment to the HIKVISIONUI share (Release, win-x86, self-contained).
2026-09-04 12:25:39 +05:00
SYED MUSTUFA AHMED NAQVI 7cb1ffd65b feat(config): embed credentials for ClickOnce and improve HRMS error messages
Adds embedded AppSecrets configuration so Release/ClickOnce builds work without appsettings.Development.json or a Public Documents config file. Includes AppSecrets.example.cs as a template; copy to gitignored AppSecrets.cs and fill in credentials before publishing. Improves dashboard messages when HRMS is missing vs unreachable.
2026-09-04 10:56:14 +05:00
SYED MUSTUFA AHMED NAQVI 252e1b0b80 fix(hrms): fallback location sites when inventory schema is unavailable
Prod DB users often lack SELECT on inventory.location_site. When that join fails, load distinct location sites from hrms.employee instead of failing the whole dropdown. Site names fall back to Site {id} when inventory titles are unavailable.
2026-09-04 10:55:09 +05:00
SYED MUSTUFA AHMED NAQVI ffaede8a10 Show device-to-device operations in sync history
Update Sync History presentation for the renamed Device → Device operation.

- Map DeviceToDevice operations to Template Sync display text
- Keep the existing template sync icon styling for Device → Device history rows
2026-08-28 12:46:52 +05:00
SYED MUSTUFA AHMED NAQVI b73476c5b3 Replace DB-to-device page with device-to-device UI
Replace the old DB → Device page with the new Device → Device page.

- Remove the old DbToDevice view and code-behind
- Add the new DeviceToDevice view and code-behind
- Add source/target device selection
- Add connection checks, user loading, selection, progress, and sync action UI
2026-08-28 12:46:03 +05:00
SYED MUSTUFA AHMED NAQVI 78b8a9bc86 Implement device-to-device template sync service flow
Add the service logic for copying users and face templates from one Hikvision device to another.

- Rename DbToDevice sync method to DeviceToDevice
- Support source-device face download when source is connected
- Fall back to stored DB face templates when source is unavailable
- Register transferred users on the target machine
- Record Device → Device operation history
2026-08-28 12:45:18 +05:00
SYED MUSTUFA AHMED NAQVI ab084ebb50 Update sync models for device-to-device transfer
Introduce model support for the Device → Device sync flow.

- Replace DbToDevice sync operation with DeviceToDevice
- Update sync history display text for the renamed operation
- Add source display and face display fields for selectable machine users
- Add DeviceTransferUser model for transferring selected users
2026-08-28 12:44:29 +05:00
SYED MUSTUFA AHMED NAQVI 688588eff1 Rename DB-to-device navigation to device-to-device
Update the main window navigation and page host from DB → Device to Device → Device.

- Rename the sidebar navigation item to Device → Device
- Route the new navigation tag to the new page
- Replace DbToDevice page/control references with DeviceToDevice references
2026-08-28 12:44:00 +05:00
SYED MUSTUFA AHMED NAQVI 202d490980 feat(ui): implement Departmental User Sync and Sync History views
Departmental user sync and sync history pages, completing the workflow UI set
2026-08-27 11:13:21 +05:00
SYED MUSTUFA AHMED NAQVI 425cb4954e feat(ui): implement DB→Device template sync view
DB→Device template sync UI wired to TemplateSyncService.
2026-08-27 11:12:59 +05:00
SYED MUSTUFA AHMED NAQVI 059b667901 feat(ui): implement Device→DB template sync view
Device→DB template sync UI wired to TemplateSyncService.
2026-08-27 11:12:30 +05:00
SYED MUSTUFA AHMED NAQVI 87aacbea64 feat(ui): implement Attendance Sync view
Attendance Sync page: device/date range, run sync, and result display.
2026-08-27 11:11:49 +05:00
SYED MUSTUFA AHMED NAQVI b7f968d655 feat(ui): implement User Management create and delete pag
User Management UI for create/delete with device selection and per-row sync results.
2026-08-27 11:11:24 +05:00
SYED MUSTUFA AHMED NAQVI be49cea934 fix(ui): coalesce dashboard refresh and wire main navigation shell
Single-flight dashboard refresh, loading state in finally, and main-window navigation between workflow pages.
2026-08-27 11:10:48 +05:00
SYED MUSTUFA AHMED NAQVI 27327aa580 fix(ui): add shared ComboBox templates and app styles
Shared app-level styles and ComboBox templates used across workflow views.
2026-08-27 10:02:01 +05:00
SYED MUSTUFA AHMED NAQVI 7d0872b03b chore(logging): add trace logging to attendance, template, and photo services
Adds TraceEnter / TraceExit at service boundaries for attendance sync, template sync, and photo fetch.
2026-08-27 10:01:24 +05:00
SYED MUSTUFA AHMED NAQVI 01ef651965 feat(services): implement user create/delete with PARTIAL face results
User create/delete with per-employee batch results, correct SUCCESS/FAILED rows, and PARTIAL when the user is created but face enrollment fails.
2026-08-27 10:00:42 +05:00
SYED MUSTUFA AHMED NAQVI c4bd561811 feat(sync): update user sync engine and departmental sync for face outcomes
Wires the sync engine and departmental sync to the new result model and face-enrollment verification behavior.
2026-08-27 10:00:13 +05:00
SYED MUSTUFA AHMED NAQVI f1e20ddf0b feat(models): add UserCreated and FaceEnrolled to sync results
Extends sync result types with UserCreated, FaceEnrolled, and OverallResult.PARTIAL so create/delete flows can report user-only vs face-enrollment outcomes.
2026-08-27 09:59:37 +05:00
SYED MUSTUFA AHMED NAQVI e7714452da feat(services): add portrait JPEG normalizer for face enrollment
Adds image normalization (480×640 portrait, JPEG ≤200 KB) required by the ISAPI face upload path. Commit this first so the project builds against the already-committed HikvisionIsapiClient.
2026-08-27 09:59:09 +05:00
SYED MUSTUFA AHMED NAQVI f047129c14 refactor(services): rewrite DeviceConnectionService with dedup and logging
Per-device test locks, 10s timeout, [DEVICE_TEST] logging, and outcome-based results.

Background device probes with parallel checks; maps outcomes to dashboard without false offline on parse errors.
2026-08-27 09:46:42 +05:00
SYED MUSTUFA AHMED NAQVI 85ac3c7b3f feat(isapi): rewrite ISAPI client for connection test, delete, and face enrollment
XML/JSON connection test, delete success parsing (subStatusCode: ok), FDLib discovery, hand-built multipart face upload, and UserInfo numOfFace verification.
2026-08-27 09:45:14 +05:00
SYED MUSTUFA AHMED NAQVI 2b3e8ea619 fix(hrms): align employee service with UIND schema
Corrects HRMS field names for employees, departments, and location sites.
2026-08-27 09:43:35 +05:00
SYED MUSTUFA AHMED NAQVI fb02c5b454 fix(models): extend Device and DashboardViewModel for live status KPIs
Adds dashboard status display lines and fixes KPI card bindings to match device list state.
2026-08-27 09:41:59 +05:00
SYED MUSTUFA AHMED NAQVI df0d5a77ee feat(models): add ConnectionTestOutcome for device connectivity
Online, Auth Failed, API Error, Timeout, Offline, and dashboard mapping helpers.
2026-08-27 09:39:55 +05:00
SYED MUSTUFA AHMED NAQVI 82dfa54e39 feat(config): add Hikvision credentials factory and dev example settings
Resolves ISAPI credentials from device, env vars, or Development JSON. Logs load status at startup.
2026-08-27 09:38:59 +05:00
SYED MUSTUFA AHMED NAQVI 067dc77f37 feat(logging): add TraceEnter and TraceExit to AppLogger
Adds structured START/END trace helpers used by sync, create, delete, and ISAPI operations.
2026-08-27 09:36:52 +05:00
SYED MUSTUFA AHMED NAQVI b4c15f6f7f Initial commit 2026-08-24 12:35:29 +05:00