Files

86 lines
2.6 KiB
Markdown
Raw Permalink Normal View History

2026-04-17 14:55:32 -04:00
---
source_files:
- DataPRO/Modules/DatabaseImporter/DatabaseImport/Users/User.cs
- DataPRO/Modules/DatabaseImporter/DatabaseImport/Users/ITagAware.cs
- DataPRO/Modules/DatabaseImporter/DatabaseImport/Users/Tags.cs
generated_at: "2026-04-17T16:44:26.882862+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "a4f52a52acc619da"
---
# Documentation: DatabaseImport.Users Module
## 1. Purpose
This module provides the domain model for User entities within the DatabaseImport system, with support for tag associations. It enables serialization of tag IDs to binary blobs for database storage, and defines the structure for tag entities that can be persisted and cloned. The module is designed to facilitate importing user data with associated metadata (tags) from external sources.
---
## 2. Public Interface
### `User` Class
**Namespace:** `DatabaseImport`
**Inheritance:** `TagAwareBase`
A minimal entity class representing a single user. Inherits all behavior from `TagAwareBase`, including tag management and timestamp functionality.
```csharp
public class User : TagAwareBase
```
---
### `ITagAware` Interface
**Namespace:** `DatabaseImport`
A marker interface for classes that support tag awareness. Currently defines no members.
```csharp
public interface ITagAware
```
---
### `TagAwareBase` Class (Abstract)
**Namespace:** `DatabaseImport`
**Inheritance:** `DbTimeStampBase`
Base class providing tag storage and binary serialization capabilities.
#### Properties
| Signature | Description |
|-----------|-------------|
| `byte[] TagsBlobBytes { get; set; }` | Gets or sets tag IDs as a binary blob. Getter converts `TagIDs` to a byte array; setter parses bytes back to `TagIDs`. |
| `int[] TagIDs { get; set; }` | Gets or sets the array of tag IDs. Never null; defaults to empty array. |
---
### `Tags` Class
**Namespace:** `DatabaseImport`
Container class for tag-related types.
---
### `Tags.Tag` Class (Nested)
**Namespace:** `DatabaseImport`
**Implements:** `ICloneable`
Represents a single tag entity with ID, text, and obsolescence state.
#### Properties
| Signature | Description |
|-----------|-------------|
| `int ID { get; set; }` | The unique identifier for the tag. |
| `string Text { get; set; }` | The display text of the tag. |
| `bool IsObsolete { get; set; }` | Indicates whether the tag is obsolete. |
#### Constructors
| Signature | Description |
|-----------|-------------|
| `Tag(Tag copy)` | Copy constructor. Creates a new instance with values copied from `copy`. |
| `Tag(IDataRecord reader)` | Constructs a tag from a database record, reading fields via `DbOperations.Tags.TagFields`