Skip to content

SMART 2.0 — Developer reference

Workplace2020 is ASP.NET Web Forms (.NET Framework). UI pages call App_API/*.asmx with jQuery AJAX. Authorization is LDAP login + ASP.NET session — almost every page checks Session["Database"] and WEB_APPS_MENU.

Workplace2020/
└── Workplace2020/
├── SMART2.Master ← shell, menus, openSMARTapp()
├── login.aspx ← LDAP / external login
├── AppCode/ ← ldap.cs, common.cs, workplaceUtils
├── App_API/ ← ASMX AJAX services
├── shared/ ← contracts, contacts (major web UI)
├── sales/, production/, accounting/, …
├── web-reports/
├── docs/ ← Excel templates + upload handlers
└── release-notes/ ← HTML release notes
  1. login.aspxLDAPMgr.LoginAttempt (AD/LDAP) or external user path.
  2. On success: Forms authentication cookie + AgilePoint cookies; session populated in ldap.cs.
  3. SMART2.MasterLogged_In when Session["Database"] is set; builds nav from session menus.
  4. Page_PreLoad on module pages — redirect to /login?ReturnUrl=... if no session; redirect to privs.aspx if WEB_APPS_MENU lacks app name (e.g. "Sales").
KeyPurpose
DatabaseSelected company DB — required for authenticated pages
WEB_APPS_MENUComma/structured list of allowed web app names
WEB_APP_SYS_IDsNumeric IDs for menu tile visibility
AuthorizedApplicationsDesktop SMART apps user may launch
AuthorizedReportsWeb report links
AuthorizedCommandsCommand pages
UserAccountSysIDSMART user identity
AgilePointUserIDBPM user mapping

Use administration/display-session-vars.aspx (restricted) for debugging — never share screenshots with PII.

Namespace http://smithdouglas.com/. Most methods use EnableSession = true.

ServiceResponsibility
utils.asmxGlobal search, community/project/building/unit autofill
contacts.asmxContacts CRUD and search
contracts.asmxContract lifecycle, options, change orders
contract-management.asmxRatify, close, cancel
businesses.asmxVendor / business records
sales.asmxSales home KPIs, tasks, traffic
app-assist.asmxLarge helper surface for production/accounting UI
invoicing.asmxLand dev invoicing, BC integration
land-acq.asmxLand acquisition CRM data
reporting.asmxFinancial report datasets
unit-summary.asmxUnit summary report
production-cycle-time-analysis.asmxCycle time report
traffic-reports.asmx, traffic-reports2.asmxTraffic KPIs
journal.asmxNotes / journal search
alerts.asmxUser/vendor alerts
campaigns.asmxEmail campaigns (Sendy integration)
webFunctions.asmxAdmin: web apps, roles, loan submission, costbook restart

Legacy: zz_SmartWebServices/ — hosted on separate domain per !README.txt.

Builder, Trade, and Home Owner portals call SMART 2.0 App_API (not a separate REST API). See portal app docs under Applications.

__db_scripts/ — migration scripts and DatabaseUpdates.xlsx.