C#/.NET/WPF client-server application for law enforcement incident reporting, dispatch (CAD), and field interview management. Includes SQLite sync, reporting, and a companion ASP.NET web portal.
Invert911 is a comprehensive law enforcement records management system built with .NET Framework 4.5. It provides:
- WPF Desktop Clients — Rich desktop applications for incident entry, dispatch operations, field interviews, and administrative tasks
- Business & Data Layers — Shared libraries (
InvertCommon,InvertBusinessLayer) containing domain models, data access (Entity Framework 5 + SQLite), messaging, and synchronization logic - ASP.NET Web Portal (
InvertWebCloud) — Companion web application for reporting, documentation, issue tracking, and media management - Offline-First Sync — SQLite Compact / SQLite synchronization for mobile/field use with server reconciliation
- Dynamic Forms Engine — Configurable dynamic entry forms with validation rules for citations, incidents, arrests, and more
| Path | Purpose |
|---|---|
I9.sln |
Visual Studio 2012/2013 solution (10+ projects) |
InvertCommon/ |
Core shared library: data classes, framework, modules, messaging, sync, reports, themes |
InvertBusinessLayer/ |
Business logic & data access layer (BLL/DAL), service framework |
InvertClient/ |
Primary WPF desktop client (Invert911) |
InvertClientCloud/ |
Cloud/roaming-enabled WPF client variant |
InvertClientLite/ |
Lightweight field client ("PolicePad") |
InvertInstaller/ |
Installation project |
InvertWebCloud/ |
ASP.NET Web Forms portal (reports, docs, issue tracker, media) |
packages/ |
NuGet packages (EntityFramework 5, SQLite, iTextSharp) |
BuildProcessTemplates/ |
TFS build templates |
ExternalFiles/ |
External dependencies |
Tools/ |
Utility scripts |
| Layer | Stack |
|---|---|
| Desktop UI | WPF (XAML), .NET Framework 4.5 |
| Web Portal | ASP.NET Web Forms 4.5, ASMX web services |
| Data Access | Entity Framework 5 (Code First), System.Data.SQLite / SQL Server Compact |
| Sync | Custom SQLite ↔ SQL Server sync engine (SyncSQLite.cs, SyncSQLCompact.cs) |
| Reporting | iTextSharp (PDF), custom report engine |
| Messaging | Custom message framework (i9Message, i9MessageManager) |
| Build | MSBuild, TFS Build Process Templates |
- Incidents & CAD —
i9LawIncident,i9CADServiceCall,i9CADUnit,i9Event,i9AVL(automatic vehicle location) - Citations & Arrests —
i9Citation,i9Arrest,i9ArrestReport,i9Charge - Persons & Vehicles —
i9Person,i9PersonArrestee,i9Vehicle,i9VehicleTowed,i9VehicleRecovery - Property & Evidence —
i9Property,i9PropertyEvidence,i9PropertyFirearm,i9PropertyExplosive - Administration —
i9Agency,i9SecurityGroup,i9SysPersonnel,i9Module,i9ConfigurationSetting - Dynamic Forms —
i9DynamicEntry,i9DynamicEntryConfig,i9DynamicEntryRule, validation engine
- CAD — Dispatch window, command window, unit status, AVL, events, BOLO, briefing
- Law Enforcement — Incident workspace, citation entry/workspace, arrest, field contact, gang, warrant, pawn, sex offender, property room, photo line-up
- Admin — Agency, codes, personnel, security, schedules, dynamic entry config, system keys, logs
- Common — Person/vehicle/property/location management, attachments, narratives, dynamic entry
- Utilities — Ad-hoc reporting, SQL documentation, module manager
- Visual Studio 2012/2013 (or newer with .NET Framework 4.5 targeting pack)
- SQL Server 2008+ (or SQL Server Express) for the central database
- Windows 7/8/10 for WPF clients
- Open
I9.slnin Visual Studio - Restore NuGet packages (EntityFramework 5, SQLite, iTextSharp are committed in
packages/) - Build solution (Debug/Release, x86/x64)
The application expects a SQL Server database. Connection strings are managed via ConfigurationManager in InvertBusinessLayer/ServiceFramework/ConfigurationManager.cs and InvertCommon/Framework/Utilities/ConfigurationManager.cs.
Deploy InvertWebCloud/ to IIS with .NET 4.5 application pool. Configure Web.config connection strings to point at the same database used by the desktop clients.
GNU General Public License v2.0 (GPL-2.0) — see LICENSE file.
This is a legacy codebase (circa 2014) built for .NET Framework 4.5. It may require updates to run on modern .NET versions or with current tooling. The repository is preserved for reference and historical purposes.