# Features — ieb_template

Evidence date: 2026-10-12. Revision: `main` `493c34f` (2025-02-05).

Status words: **Current** (present and wired), **Partial** (present but incomplete or unused by the sample), **Unused** (compiled or vendored, no caller in this tree), **Removed / commented** (left in tree but not executed).

No feature roadmap file exists. Nothing in git history shows a recently changed feature: there is one commit.

## Current

### Sample user maintenance

Location: `SampleWebsite/Default.aspx`, `SampleWebsite/Default.aspx.cs`.

- Grid of `evo_User` columns `recId`, `name`, `surname`, `email`, `userType`.
- Add with duplicate-email refusal.
- Grid edit, cancel, update, and delete.
- Status label for add, duplicate, delete success, and delete miss.
- `userType` forced to `1` on add and update.

### Typed data access used by the sample

Location: `Sample_Business/classes/xData.cs`, `BaseLibrary/data/classes/dynamicInteraction.cs`.

- `GetCustomTypedTable` for the grid SQL.
- `VerifyExists` on `email`.
- `SaveTyped`, `UpdateTyped`, `DeleteTyped` with identity field `recId` and table prefix `evo_`.

### Object constructor

Location: `BaseTools/EvoSoft_Constructor/`.

- Lists user tables and views.
- Writes a `[Serializable]` C# class from the selected table.
- Writes a class from a custom query via `ObjectCreatorProc`.
- Creates the `output` folder when it is missing (`utils.validateFolder`).

### Table XML export

Location: `BaseTools/EvoSoft_DataExporter/ExportData/ExportData.cs`.

- Lists user tables and views.
- Writes `{tableName}.xml` under `export\`.

### Shared library surface that other code can call

Location: `BaseLibrary/`. These types are part of the assembly even when the sample page does not call them. They are **Current** as library API, and **Unused** by `SampleWebsite` unless noted.

- `dataInteraction` and `dynamicInteraction`: insert, update, select, delete, verify, select distinct. Dynamic path can limit with `TOP`, match columns to the live table, and follow `Id` / `ID` properties to related tables when `includeDynamics` is set.
- `dataTier`: connection from appSettings then `connectionStrings`, commands, transactions, readers, dataset save, delete, clear table.
- `communication.SendAnEmail`: HTML body default, semicolon-separated to/cc/bcc, attachments and alternate views on `oEmail`. From address on the message is appSetting `from`; the object's `fromAddress` is added as reply-to.
- `communication.SendSMSMessage`: South African prefix `+27`, gateway XML POST, failure mail to `support`.
- `utils`: email regex, SA ID check, birthday and gender from an ID number, mobile format, age, CSV/XML/Excel conversion, image resize and crop, Word merge, HTML merge, HTML-to-PDF, PDF encryption.
- `encryption`: TripleDES encrypt and decrypt of a string, key supplied by the caller.
- `exception.HandleException`: insert into `evo_Exceptions` and email support when a debugger is not attached.
- `banners.ReturnBannerList` and `ReturnMarquee`: image tags for gif, jpg, and png files under `images\{folder}`.
- `webControlsExtensions`: `AddCssClass`, `RemoveCssClass`, `ToDelimitedString`.
- `Pivot` in namespace `HtmlPivot`: HTML pivot table from a `DataTable`.
- `OAuth.Manager` (`business/classes/oAuth.cs`): OAuth 1.0 request token, access token, and authorization header. File header attributes the snippet to Dino Chiesa and names Twitter and TwitPic as the tested services.
- Domain objects: dispatch, email, SMS, province, suburb, geograph, age, merge field, dynamic parameter, interaction, and the Facebook / Instagram / YouTube property bags.

## Partial

### Sample user record

`oUser` (`Sample_Business/objects/oUser.cs`) has postal and physical addresses, company, ID number, VAT number, telephone, password, reset code, cookie, terms flag, active flag, reset flag, birth date, and created/updated dates. The page edits four fields only. The rest keep CLR defaults on insert. **Partial** relative to the object.

### User types

`oUserType` (`recId`, `sequence`, `isActive`, `userType`) is compiled. The page never loads it and always stores `userType` 1. **Partial**.

### Exception email subject token

`Web.config` subject is `Sample Website - {content}`. `EmailException` replaces `{content}` with `Exception`. Other tokens are not defined. **Partial** use of the template.

### Website framework mix

The solution marks the site as .NET Framework 4.5. `Web.config` compiles as 4.0 and registers Telerik HTTP handlers. No Telerik control appears on `Default.aspx`. **Partial** configuration.

### Release build of the website

In `EvolutionSoftwareLibrary.sln`, every SampleWebsite Release configuration builds Debug. **Partial** / looks accidental.

## Unused

### xData methods the page does not call

Criteria selects (specific, distinct, contains, begins), dynamic tables, typed datasets, collection save/update, stored-procedure wrappers, and `GetCustomData` (`sp_GetCustomData`). Location: `xData.cs`.

### Older dataInteraction path

`dataInteraction.HandleInteraction` is the non-serialised sibling of `dynamicInteraction`. `xData` calls `dynamicInteraction.ProcessInteraction` only.

### Vendored binaries with no `Reference` in `EvoSoft_Lib.csproj`

Present under `BaseLibrary/assemblies/` and not listed as references: AjaxControlToolkit, epengine, ephtmltopdf, EZCurl, EZDcx, EZGif, EZJpeg, EZOcr, EZPdf, EZPng, EZSymbol, EZTiff, Eztwain3, ICSharpCode.SharpZipLib, log4net, Microsoft.Office.Interop.Outlook, NullDateTimePicker, Redemption, Telerik.Web.UI. `ephtmltopdf` may still be loaded indirectly by PdfMetamorphosis. That was not executed. **Unknown / Requires Confirmation**.

### Facebook 6.4.2 package

`packages/Facebook.6.4.2/` and `BaseLibrary/packages.config`. Not a `Reference` in `EvoSoft_Lib.csproj`. No `FacebookClient` usage was found in the library `.cs` files.

### Empty WinForms base

`BaseLibrary/presentation/win/forms/baseform.cs` only calls `InitializeComponent`.

### Empty folders declared in the library project

`data/persistance/` and `presentation/web/controls/` exist as project folders with no source files.

### TFS build XAML

`BuildProcessTemplates/*.xaml`. No `bitbucket-pipelines.yml` and no project that invokes these templates.

### Sample database backup

`SampleWebsite/db/Sample.bak`. Nothing in the site code restores it.

### Page-load samples

Commented insert, update, and search in `Default.aspx.cs` `Page_Load`. **Removed / commented**.

## Planned

No planned feature is written down. **Planned: none found.**

## Recently changed

Git has a single commit, `493c34f`, "Initial commit", 2025-02-05. There is no earlier commit in this repository to diff against.

## Deprecated / removed

No removal is recorded in git. Source-control binding files (`.vspscc`, `.vssscc`, `.tfignore`) remain. They record an older Team Foundation layout. They do not remove a feature.

## Not in this git revision

`sonar-project.properties` and `sonarqube_scan.bat` were listed on the scan host when OVER-151 was opened. They are not in `493c34f`. Same note as `project-plan.md`.
