Document AcBinary wire format, sync docs, update conventions

- Add BINARY_FORMAT.md: full AcBinary wire format spec (markers, encoding, options, protocol, interactions)
- Reference BINARY_FORMAT.md from GLOSSARY.md, Binaries/README.md, and Serializers/Binaries/README.md; add new glossary terms
- Clarify and expand config options tables to match new doc
- Add/clarify LLM maintenance rules: always sync .md files with code, auto-fix discrepancies
- Update root README.md: AyCode.Core targets .NET 9, not 10; stress doc/code sync
- Add code reuse and doc sync conventions to copilot-instructions.md and CONVENTIONS.md
- Add docs/ folder and BINARY_FORMAT.md to solution as Solution Items
- Minor clarifications and cross-links in ARCHITECTURE.md and other docs
This commit is contained in:
Loretta 2026-03-29 09:11:57 +02:00
parent cdcb200643
commit 17daf0fef2
110 changed files with 442 additions and 439 deletions

View File

@ -22,3 +22,6 @@
10. Do not suggest removal/rollback as a solution — find a fix for the problem. 10. Do not suggest removal/rollback as a solution — find a fix for the problem.
11. Extension methods over instance methods for CRUD operations (see DbSets pattern). 11. Extension methods over instance methods for CRUD operations (see DbSets pattern).
12. Session pattern for reads, Transaction pattern for writes (see DataLayers). 12. Session pattern for reads, Transaction pattern for writes (see DataLayers).
13. **Target framework is net9.0** (set in AyCode.Core.targets). The SourceGenerator targets netstandard2.0. Consuming projects (AyCode.Blazor, FruitBankHybridApp UI) may target net10.0 but reference AyCode.Core DLLs built as net9.0.
14. **No redundant code** — before writing new logic, search for existing methods. Reuse or extract shared logic into smaller methods rather than duplicating. If an existing method does most of what you need, split it into composable parts.
15. **Keep all .md files in sync** — when you modify code, update any affected .md file (README.md, docs/, GLOSSARY, ARCHITECTURE, CONVENTIONS, BINARY_FORMAT, SCHEMA, etc.). If you notice any .md content does not match the current code, fix it automatically.

View File

@ -21,7 +21,3 @@ BenchmarkDotNet-based performance benchmarking console app. Compares AcBinary se
| `BenchmarkDotNet` | Benchmarking framework | | `BenchmarkDotNet` | Benchmarking framework |
| `MessagePack` | Serialization comparison target | | `MessagePack` | Serialization comparison target |
| `MongoDB.Bson` | BSON comparison target | | `MongoDB.Bson` | BSON comparison target |
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -28,7 +28,3 @@ Standalone benchmark console application for comparing serializer performance. T
| `MemoryPack` | Competitor benchmark | | `MemoryPack` | Competitor benchmark |
| `MessagePack` | Competitor benchmark | | `MessagePack` | Competitor benchmark |
| `Newtonsoft.Json` | Competitor benchmark | | `Newtonsoft.Json` | Competitor benchmark |
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -28,7 +28,3 @@ Disabled features eliminate corresponding code blocks from generated output (zer
|---|---| |---|---|
| `Microsoft.CodeAnalysis.CSharp` | Roslyn syntax/semantic APIs | | `Microsoft.CodeAnalysis.CSharp` | Roslyn syntax/semantic APIs |
| `Microsoft.CodeAnalysis.Analyzers` | Analyzer best practices | | `Microsoft.CodeAnalysis.Analyzers` | Analyzer best practices |
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -5,7 +5,3 @@ Provides a singleton `GlobalLogger` for application-wide logging with multiple s
## Key Files ## Key Files
- **`GlobalLogger.cs`** — Singleton static logger that delegates to `AcLoggerBase`. Supports category names, caller member tracking, and configurable `LogLevel` and `AppType`. - **`GlobalLogger.cs`** — Singleton static logger that delegates to `AcLoggerBase`. Supports category names, caller member tracking, and configurable `LogLevel` and `AppType`.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -21,7 +21,3 @@ Server-side extension of AyCode.Core. Provides server-specific implementations t
| `MessagePack` | MessagePack serialization | | `MessagePack` | MessagePack serialization |
| `Newtonsoft.Json` | JSON serialization | | `Newtonsoft.Json` | JSON serialization |
| `Microsoft.Extensions.Logging.Abstractions` | Logging abstractions | | `Microsoft.Extensions.Logging.Abstractions` | Logging abstractions |
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -16,7 +16,3 @@ Concrete entity implementations inheriting from AyCode.Entities abstract generic
## Relationships ## Relationships
User ↔ Company (many-to-many via UserToCompany), User → Profile → Address (one-to-one chain), EmailMessage → EmailRecipient (one-to-many). User ↔ Company (many-to-many via UserToCompany), User → Profile → Address (one-to-one chain), EmailMessage → EmailRecipient (one-to-many).
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -15,7 +15,3 @@ Concrete entity implementations for database integration testing. Exposes types
| `MSTest` | Test framework | | `MSTest` | Test framework |
| `AyCode.Core.Tests` | Shared test utilities | | `AyCode.Core.Tests` | Shared test utilities |
| `AyCode.Entities` / `AyCode.Entities.Server` | Abstract entity base classes | | `AyCode.Entities` / `AyCode.Entities.Server` | Abstract entity base classes |
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -5,7 +5,3 @@ GZip compression utility tests.
## Key Files ## Key Files
- **`GzipHelperTests.cs`** — Tests GzipHelper.Compress(), DecompressToString(), DecompressToRentedBuffer() (ArrayPool), IsGzipCompressed() (magic byte detection). - **`GzipHelperTests.cs`** — Tests GzipHelper.Compress(), DecompressToString(), DecompressToRentedBuffer() (ArrayPool), IsGzipCompressed() (magic byte detection).
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -5,7 +5,3 @@ Hand-written examples of the code pattern that the AcBinarySerializable source g
## Key Files ## Key Files
- **`TestOrderWriter.cs`** — Example IGeneratedBinaryWriter: direct property access (no reflection), alphabetical order, value types inline, complex types delegate to runtime. Demonstrates ICache-friendly pattern (~500B vs 27KB runtime). - **`TestOrderWriter.cs`** — Example IGeneratedBinaryWriter: direct property access (no reflection), alphabetical order, value types inline, complex types delegate to runtime. Demonstrates ICache-friendly pattern (~500B vs 27KB runtime).
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -25,7 +25,3 @@ MSTest unit tests for AyCode.Core serialization, compression, and utilities. Cov
| `MessagePack` | Serialization comparison | | `MessagePack` | Serialization comparison |
| `MemoryPack` | Serialization comparison | | `MemoryPack` | Serialization comparison |
| `MongoDB.Bson` | BSON comparison | | `MongoDB.Bson` | BSON comparison |
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -30,7 +30,3 @@ Comprehensive test suite for binary and JSON serialization: round-trips, referen
- **`GeneratedSerializerIntegrationTests.cs`** — Verifies generated writer types implement IGeneratedBinaryWriter. - **`GeneratedSerializerIntegrationTests.cs`** — Verifies generated writer types implement IGeneratedBinaryWriter.
- **`QuickBenchmark.cs`** — Performance comparison: AcBinary vs MessagePack. - **`QuickBenchmark.cs`** — Performance comparison: AcBinary vs MessagePack.
- **`AcSerializerTestHelper.cs`** — Factory methods for test data. - **`AcSerializerTestHelper.cs`** — Factory methods for test data.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -11,7 +11,3 @@ Shared test entities, enums, data factories, and SignalR test infrastructure. Us
- **`TestDataFactory.cs`** — Centralized factory with ID sequencing: CreateTag(), CreateCategory(), CreateUser(), CreateOrder(), CreateOrderItem(). - **`TestDataFactory.cs`** — Centralized factory with ID sequencing: CreateTag(), CreateCategory(), CreateUser(), CreateOrder(), CreateOrderItem().
- **`SignalRTestInfrastructure.cs`** — SignalRMessageFactory, DTOs, CommonSignalRTags, SignalRBenchmarkData. - **`SignalRTestInfrastructure.cs`** — SignalRMessageFactory, DTOs, CommonSignalRTags, SignalRBenchmarkData.
- **`TestLogger.cs`** — Logger with capture for assertions: HasErrorLogs, HasWarningLogs, GetErrorMessages(). - **`TestLogger.cs`** — Logger with capture for assertions: HasErrorLogs, HasWarningLogs, GetErrorMessages().
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -1,4 +1,4 @@

Microsoft Visual Studio Solution File, Format Version 12.00 Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 18 # Visual Studio Version 18
VisualStudioVersion = 18.0.11222.15 VisualStudioVersion = 18.0.11222.15
@ -44,6 +44,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
AyCode.Core.targets = AyCode.Core.targets AyCode.Core.targets = AyCode.Core.targets
RunQuickBenchmark.bat = RunQuickBenchmark.bat RunQuickBenchmark.bat = RunQuickBenchmark.bat
RunQuickBenchmark.ps1 = RunQuickBenchmark.ps1 RunQuickBenchmark.ps1 = RunQuickBenchmark.ps1
.github\copilot-instructions.md = .github\copilot-instructions.md
CLAUDE.md = CLAUDE.md
README.md = README.md
ToonExtendedInfo.txt = ToonExtendedInfo.txt ToonExtendedInfo.txt = ToonExtendedInfo.txt
EndProjectSection EndProjectSection
EndProject EndProject
@ -55,6 +58,14 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AyCode.Core.Serializers.Sou
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AyCode.Core.Serializers.Console", "AyCode.Core.Serializers.Console\AyCode.Core.Serializers.Console.csproj", "{6AB7CE43-3C98-1D54-9ABD-E5E9364541E7}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AyCode.Core.Serializers.Console", "AyCode.Core.Serializers.Console\AyCode.Core.Serializers.Console.csproj", "{6AB7CE43-3C98-1D54-9ABD-E5E9364541E7}"
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{D4B2E9F1-A6C3-4F7E-8D5B-3E2A1C4F6B8D}"
ProjectSection(SolutionItems) = preProject
docs\ARCHITECTURE.md = docs\ARCHITECTURE.md
docs\BINARY_FORMAT.md = docs\BINARY_FORMAT.md
docs\CONVENTIONS.md = docs\CONVENTIONS.md
docs\GLOSSARY.md = docs\GLOSSARY.md
EndProjectSection
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU

View File

@ -22,7 +22,3 @@ Three compression algorithms with a unified static API. All implementations use
- `System.IO.Compression` (Brotli, GZip) - `System.IO.Compression` (Brotli, GZip)
- `System.Buffers` (ArrayPool) - `System.Buffers` (ArrayPool)
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -9,7 +9,3 @@ Project-wide constants, error codes, environment configuration, regex patterns,
- **`AcErrorCode.cs`** — Byte enum with 60+ error codes (0=UnknownError ... 255=Unset). Used across the entire API layer. - **`AcErrorCode.cs`** — Byte enum with 60+ error codes (0=UnknownError ... 255=Unset). Used across the entire API layer.
- **`AcRegExpression.cs`** — Compile-time generated regex via `[GeneratedRegex]`: `EmailRegex()` (RFC-compliant), `PhoneNumberRegex()` (E.164 format). - **`AcRegExpression.cs`** — Compile-time generated regex via `[GeneratedRegex]`: `EmailRegex()` (RFC-compliant), `PhoneNumberRegex()` (E.164 format).
- **`AcValidate.cs`** — Input validation methods returning `bool` + `out AcErrorCode`: email, password, username, player name, phone, domain, user token format checks. - **`AcValidate.cs`** — Input validation methods returning `bool` + `out AcErrorCode`: email, password, username, player name, phone, domain, user token format checks.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -7,7 +7,3 @@ Shared enums used across the platform. All are `byte`-based for compact serializ
- **`AppType.cs`** — Identifies application type: None(0), Server(1), Relay(5), Game(10), Web(15), Mobile(20), Dissonance(25), TestUnit(255). - **`AppType.cs`** — Identifies application type: None(0), Server(1), Relay(5), Game(10), Web(15), Mobile(20), Dissonance(25), TestUnit(255).
- **`MessageContextType.cs`** — Message routing context: Unset(0), System(5), Private(10), Group(15), Transfer(20), Product(25), Company(30). - **`MessageContextType.cs`** — Message routing context: Unset(0), System(5), Private(10), Group(15), Transfer(20), Product(25), Company(30).
- **`TrackingState.cs`** — Entity change tracking: None(0), Get(1), GetAll(2), Add(3), Update(4), Remove(5). - **`TrackingState.cs`** — Entity change tracking: None(0), Get(1), GetAll(2), Add(3), Update(4), Remove(5).
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -16,7 +16,3 @@ Extension methods for collections, serialization, and common utilities.
- **`EnumExtensions.cs`** — `GetDisplayName()` via `DisplayAttribute` reflection. - **`EnumExtensions.cs`** — `GetDisplayName()` via `DisplayAttribute` reflection.
- **`ExceptionExtensions.cs`** — `GetCategoryAndMemberNameFromStackTraceString()` for structured caller info extraction. - **`ExceptionExtensions.cs`** — `GetCategoryAndMemberNameFromStackTraceString()` for structured caller info extraction.
- **`GuidExtensions.cs`** — `IsNullOrEmpty()` for `Guid` and `Guid?` with `[NotNullWhen]` annotations. - **`GuidExtensions.cs`** — `IsNullOrEmpty()` for `Guid` and `Guid?` with `[NotNullWhen]` annotations.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -17,7 +17,3 @@ Utility classes for token generation, observable collections, type metadata, pas
- **`PasswordHasher.cs`** — PBKDF2-HMAC-SHA512 with 10,000 iterations. **Critical: do not modify `GenerateDynamicSalt()` or `GenerateFinallySalt()` — login will break.** Format: `$bcrypt$v=1$salt=...base64...$hash=...base64...` - **`PasswordHasher.cs`** — PBKDF2-HMAC-SHA512 with 10,000 iterations. **Critical: do not modify `GenerateDynamicSalt()` or `GenerateFinallySalt()` — login will break.** Format: `$bcrypt$v=1$salt=...base64...$hash=...base64...`
- **`PropertyHelper.cs`** — `CopyPublicValueTypeProperties<TSource, TDest>()` for DTO/entity mapping via reflection. - **`PropertyHelper.cs`** — `CopyPublicValueTypeProperties<TSource, TDest>()` for DTO/entity mapping via reflection.
- **`TaskHelper.cs`** — `WaitTo()`/`WaitToAsync()` (poll predicate with timeout using `PeriodicTimer`), `Forget()` (fire-and-forget), `RunOnThreadPool()`. - **`TaskHelper.cs`** — `WaitTo()`/`WaitToAsync()` (poll predicate with timeout using `PeriodicTimer`), `Forget()` (fire-and-forget), `RunOnThreadPool()`.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -10,7 +10,3 @@ Core interfaces used throughout the framework.
- `IForeignCollection<T>` — generic collection navigation marker (`T : IEnumerable`) - `IForeignCollection<T>` — generic collection navigation marker (`T : IEnumerable`)
- `IForeignCollection` — non-generic variant - `IForeignCollection` — non-generic variant
- **`IAcSerializableToJson.cs`** — Empty marker interface tagging types that can serialize to JSON. Used for query-time type filtering. - **`IAcSerializableToJson.cs`** — Empty marker interface tagging types that can serialize to JSON. Used for query-time type filtering.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -32,7 +32,3 @@ IAcLogWriterBase
### Supporting ### Supporting
- **`IAcLogItemClient.cs`** — Structured log item DTO for remote transmission. - **`IAcLogItemClient.cs`** — Structured log item DTO for remote transmission.
- **`LogLevel.cs`** — Byte enum: Detail(0), Trace(5), Debug(10), Info(15), Suggest(17), Warning(20), Error(25), Disabled(255). **Must match the database LogLevel table.** - **`LogLevel.cs`** — Byte enum: Detail(0), Trace(5), Debug(10), Info(15), Suggest(17), Warning(20), Error(25), Disabled(255). **Must match the database LogLevel table.**
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -30,7 +30,3 @@ Core library for the AyCode platform. Targets .NET 10. Provides serialization (B
| `Newtonsoft.Json` | JSON serialization (legacy, alongside System.Text.Json) | | `Newtonsoft.Json` | JSON serialization (legacy, alongside System.Text.Json) |
| `Microsoft.Extensions.Configuration.*` | appsettings.json + environment variable support | | `Microsoft.Extensions.Configuration.*` | appsettings.json + environment variable support |
| `Microsoft.Extensions.Logging.Abstractions` | Logging abstractions | | `Microsoft.Extensions.Logging.Abstractions` | Logging abstractions |
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -21,7 +21,3 @@ public class MyType
- None (standalone attribute definitions) - None (standalone attribute definitions)
- Consumed by the source generator and `Binaries/` serializer at runtime via `TypeMetadataWrapper` registry lookup. - Consumed by the source generator and `Binaries/` serializer at runtime via `TypeMetadataWrapper` registry lookup.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -27,6 +27,8 @@ The serializer is generic over `TOutput` for strategy selection (`ArrayBinaryOut
| 144+ | **Headers** — Metadata, RefHandling, CacheCount flags | | 144+ | **Headers** — Metadata, RefHandling, CacheCount flags |
| 192255 | **Tiny ints** — Single-byte encoding for values -16 to 47 | | 192255 | **Tiny ints** — Single-byte encoding for values -16 to 47 |
For the complete wire format specification (encoding rules, header format, interning protocol), see [`../../../../docs/BINARY_FORMAT.md`](../../../../docs/BINARY_FORMAT.md).
## Key Files ## Key Files
### Serialization ### Serialization
@ -75,22 +77,25 @@ The serializer is generic over `TOutput` for strategy selection (`ArrayBinaryOut
## Configuration Options ## Configuration Options
| Option | Values | Description | | Option | Type | Default | Wire format impact |
|---|---|---| |---|---|---|---|
| `UseMetadata` | bool | Property hash metadata for cross-type deserialization | | `WireMode` | Compact/Fast | Compact | Compact: VarInt+UTF-8. Fast: fixed-width+UTF-16 memcpy |
| `UseStringInterning` | None/Attribute/All | String deduplication strategy | | `ReferenceHandling` | None/OnlyId/All | All | Controls scan pass, `ObjectRefFirst(70)`/`ObjectRef(65)` markers |
| `ReferenceHandling` | None/OnlyId/All | Circular reference support | | `UseMetadata` | bool | false | Adds FNV-1a property hashes, enables `ObjectWithMetadata(69)` markers |
| `WireMode` | Compact/Fast | VarInt+UTF-8 vs fixed-width+UTF-16 | | `UseStringInterning` | None/Attribute/All | Attribute | Controls `StringInternFirst(94)`/`StringInterned(92)` deduplication |
| `UseCompression` | None/Block/BlockArray | LZ4 compression support | | `MaxDepth` | byte | 255 | Nested objects beyond depth written as `Null(76)` |
| `UseCompression` | None/Block/BlockArray | None | Post-serialization LZ4 compression (transparent wrapper) |
| `PropertyFilter` | delegate? | null | Exclude properties from stream entirely |
| `ThrowOnCircularReference` | bool | true | Cycle detection behavior when ref handling enabled |
**Presets:** `Default`, `FastMode`, `ShallowCopy`, `WasmOptimized`. **Key rule:** `ReferenceHandling=None` + `UseStringInterning=None` = no scan pass (fastest, single-phase).
**Presets:** `Default` (All refs, Attribute interning), `FastMode` (no refs, no interning), `ShallowCopy` (depth=0), `WasmOptimized` (+string caching).
For detailed option documentation with code branches and interactions, see [`../../../../docs/BINARY_FORMAT.md`](../../../../docs/BINARY_FORMAT.md#configuration-options).
## Dependencies ## Dependencies
- Base classes from parent `Serializers/` folder (`AcSerializerContextBase`, `TypeMetadataBase`, `IdentityMap`, etc.) - Base classes from parent `Serializers/` folder (`AcSerializerContextBase`, `TypeMetadataBase`, `IdentityMap`, etc.)
- `System.Buffers` (ArrayPool, IBufferWriter) - `System.Buffers` (ArrayPool, IBufferWriter)
- LZ4 (optional compression) - LZ4 (optional compression)
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -19,7 +19,3 @@ Serialization support for LINQ Expression trees and `IQueryable` objects. Conver
- `System.Linq.Expressions` - `System.Linq.Expressions`
- `AcSerializerCommon` from parent `Serializers/` folder - `AcSerializerCommon` from parent `Serializers/` folder
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -46,7 +46,3 @@ Custom JSON serialization/deserialization built on `System.Text.Json`'s `Utf8Jso
- Base classes from parent `Serializers/` folder - Base classes from parent `Serializers/` folder
- `System.Text.Json` (`Utf8JsonWriter`, `Utf8JsonReader`, `JsonElement`) - `System.Text.Json` (`Utf8JsonWriter`, `Utf8JsonReader`, `JsonElement`)
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -71,7 +71,3 @@ AcSerializerContextBase<TMetadata, TOptions>
| `None` | No tracking, fastest path | | `None` | No tracking, fastest path |
| `OnlyId` | Only `IId<T>` types tracked (Binary only) | | `OnlyId` | Only `IId<T>` types tracked (Binary only) |
| `All` | All reference types tracked (required for JSON `$ref`) | | `All` | All reference types tracked (required for JSON `$ref`) |
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -74,7 +74,3 @@ Token-Oriented Object Notation (Toon) — an LLM-optimized serialization format
- Base classes from parent `Serializers/` folder - Base classes from parent `Serializers/` folder
- Expression utilities from `Expressions/` folder (for queryable serialization) - Expression utilities from `Expressions/` folder (for queryable serialization)
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -12,7 +12,3 @@ Concrete database integration tests using entity implementations from AyCode.Cor
- **`DatabaseTestBase.cs`** — Concrete [TestClass] with Setup/TearDown, implements AcDatabaseTestBase<UserDbContext>. - **`DatabaseTestBase.cs`** — Concrete [TestClass] with Setup/TearDown, implements AcDatabaseTestBase<UserDbContext>.
- **`appsettings.json`** — Test database connection configuration. - **`appsettings.json`** — Test database connection configuration.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -7,7 +7,3 @@ Concrete user database test implementations with real EF Core DbContext and DAL.
- **`UserDbContext.cs`** — Sealed `AcUserDbContextBase` with 8 concrete entity types, lazy loading proxies, detailed EF errors. - **`UserDbContext.cs`** — Sealed `AcUserDbContextBase` with 8 concrete entity types, lazy loading proxies, detailed EF errors.
- **`UserDal.cs`** — Sealed `AcUserDalBase` providing concrete DAL for tests. - **`UserDal.cs`** — Sealed `AcUserDalBase` providing concrete DAL for tests.
- **`UserDalTests.cs`** — Concrete tests: GetUserByEmail, GetUserById, AddUser (with profile + address). Currently disabled. - **`UserDalTests.cs`** — Concrete tests: GetUserByEmail, GetUserById, AddUser (with profile + address). Currently disabled.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -13,7 +13,3 @@ MSTest base classes for database layer testing. Provides abstract test foundatio
- **`GlobalUsings.cs`** — Global MSTest using. - **`GlobalUsings.cs`** — Global MSTest using.
- **`AcDatabaseTestModelBase.cs`** — Generic base: pooled DAL access or direct DbContext access. - **`AcDatabaseTestModelBase.cs`** — Generic base: pooled DAL access or direct DbContext access.
- **`AcDatabaseTestBase.cs`** — Abstract test class with `DatabaseExistsTest()` connectivity validation. - **`AcDatabaseTestBase.cs`** — Abstract test class with `DatabaseExistsTest()` connectivity validation.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -5,7 +5,3 @@ Abstract base for comprehensive user DAL testing.
## Key Files ## Key Files
- **`AcUserDalTestBase.cs`** — 8 generic type parameters. Tests: GetUserById (validates nested profile/address), GetUserByEmail, GetUserModelDtoDetailById, GetUserByEmailAsync, AddUserTest (full object graph with profile + address, then cleanup). - **`AcUserDalTestBase.cs`** — 8 generic type parameters. Tests: GetUserById (validates nested profile/address), GetUserByEmail, GetUserModelDtoDetailById, GetUserByEmailAsync, AddUserTest (full object graph with profile + address, then cleanup).
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -13,7 +13,3 @@ Generic Data Access Layer (DAL) abstraction with mutex-protected session/transac
| Folder | Purpose | | Folder | Purpose |
|---|---| |---|---|
| [`Users/`](Users/README.md) | User-specific DAL with authentication and CRUD | | [`Users/`](Users/README.md) | User-specific DAL with authentication and CRUD |
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -6,7 +6,3 @@ User-specific DAL extending AcDalBase with authentication, CRUD, and email valid
- **`AcUserDalBase.cs`** — GetUserById/ByEmail, AddUser, RemoveUser, UpdateUser, AuthenticateUser (with password verification + refresh token), GetUserModelDto (sync + async). - **`AcUserDalBase.cs`** — GetUserById/ByEmail, AddUser, RemoveUser, UpdateUser, AuthenticateUser (with password verification + refresh token), GetUserModelDto (sync + async).
- **`AcUserDalExtension.cs`** — Reserved for future user DAL extensions (currently contains commented legacy code). - **`AcUserDalExtension.cs`** — Reserved for future user DAL extensions (currently contains commented legacy code).
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -6,7 +6,3 @@ Logger-specific EF Core DbContext with NoTracking query behavior for read perfor
- **`IAcLoggerDbContextBase.cs`** — Interface for log item DbSet. - **`IAcLoggerDbContextBase.cs`** — Interface for log item DbSet.
- **`AcLoggerDbContextBase.cs`** — Implementation with NoTracking default, optimized for log reads. - **`AcLoggerDbContextBase.cs`** — Implementation with NoTracking default, optimized for log reads.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -15,7 +15,3 @@ EF Core DbContext base classes with automatic timestamp management, UTC conversi
|---|---| |---|---|
| [`Users/`](Users/README.md) | User-specific DbContext with DbSets for User, Profile, Address, Company, UserToken, EmailMessage | | [`Users/`](Users/README.md) | User-specific DbContext with DbSets for User, Profile, Address, Company, UserToken, EmailMessage |
| [`Loggers/`](Loggers/README.md) | Logger DbContext with NoTracking for read performance | | [`Loggers/`](Loggers/README.md) | Logger DbContext with NoTracking for read performance |
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -7,7 +7,3 @@ User-specific EF Core DbContext definitions.
- **`IAcUserDbContextBase.cs`** — Interface declaring DbSets for Users, Profiles, Addresses, Companies, UserTokens, EmailMessages. - **`IAcUserDbContextBase.cs`** — Interface declaring DbSets for Users, Profiles, Addresses, Companies, UserTokens, EmailMessages.
- **`AcUserDbContextBase.cs`** — Implementation with lazy loading, auto timestamps, and entity configurations. - **`AcUserDbContextBase.cs`** — Implementation with lazy loading, auto timestamps, and entity configurations.
- **`IAcUserTokenDbContextBase.cs`** — Interface for UserToken DbSet access. - **`IAcUserTokenDbContextBase.cs`** — Interface for UserToken DbSet access.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -6,7 +6,3 @@ Address entity CRUD operations.
- **`IAcAddressDbSetBase.cs`** — Address DbSet interface. - **`IAcAddressDbSetBase.cs`** — Address DbSet interface.
- **`AcAddressDbSetExtensions.cs`** — GetAddressById, UpdateAddress, RemoveAddress. - **`AcAddressDbSetExtensions.cs`** — GetAddressById, UpdateAddress, RemoveAddress.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -6,7 +6,3 @@ Company/ServiceProvider CRUD with profile and user-to-company relationship manag
- **`IAcCompanyDbSetBase.cs`** — Hierarchical interfaces with Profile and Address relations. - **`IAcCompanyDbSetBase.cs`** — Hierarchical interfaces with Profile and Address relations.
- **`AcCompanyDbSetExtensions.cs`** — AddCompany, UpdateCompany, RemoveCompany, GetCompanyById, GetCompaniesByOwnerId. Handles profile and user-to-company relationships. - **`AcCompanyDbSetExtensions.cs`** — AddCompany, UpdateCompany, RemoveCompany, GetCompanyById, GetCompaniesByOwnerId. Handles profile and user-to-company relationships.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -5,7 +5,3 @@ Log item DbSet interface.
## Key Files ## Key Files
- **`IAcLogItemDbSetBase.cs`** — Interface for LogItem DbSet. - **`IAcLogItemDbSetBase.cs`** — Interface for LogItem DbSet.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -6,7 +6,3 @@ Email message querying and CRUD operations with sender/recipient/context filteri
- **`IAcEmailMessageDbSet.cs`** — EmailMessage DbSet interface. - **`IAcEmailMessageDbSet.cs`** — EmailMessage DbSet interface.
- **`AcEmailMessageDbSetExtension.cs`** — GetEmailMessageById, GetEmailMessagesByContextId/SenderId, filter by sender/recipient, AddEmailMessage, UpdateEmailMessage, RemoveEmailMessage. - **`AcEmailMessageDbSetExtension.cs`** — GetEmailMessageById, GetEmailMessagesByContextId/SenderId, filter by sender/recipient, AddEmailMessage, UpdateEmailMessage, RemoveEmailMessage.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -6,7 +6,3 @@ Profile CRUD operations with address relationship support.
- **`IAcProfileDbSetBase.cs`** — Interface with Address dependency. - **`IAcProfileDbSetBase.cs`** — Interface with Address dependency.
- **`AcProfileDbSetExtensions.cs`** — GetProfileById, AddProfile, UpdateProfile, RemoveProfile. - **`AcProfileDbSetExtensions.cs`** — GetProfileById, AddProfile, UpdateProfile, RemoveProfile.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -16,7 +16,3 @@ Generic DbSet interfaces with extension method-based CRUD operations. Each entit
| [`Companies/`](Companies/README.md) | Company CRUD with profile and user-to-company relations | | [`Companies/`](Companies/README.md) | Company CRUD with profile and user-to-company relations |
| [`Messages/`](Messages/README.md) | Email message querying and CRUD | | [`Messages/`](Messages/README.md) | Email message querying and CRUD |
| [`Loggers/`](Loggers/README.md) | Log item DbSet interface | | [`Loggers/`](Loggers/README.md) | Log item DbSet interface |
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -10,7 +10,3 @@ User entity CRUD operations, authentication, and JWT token management via extens
- **`AcUserTokenDbSetExtensions.cs`** — CreateUserToken, GetActiveUserToken, IsValidToken, DeactivateTokens, ChangePassword. - **`AcUserTokenDbSetExtensions.cs`** — CreateUserToken, GetActiveUserToken, IsValidToken, DeactivateTokens, ChangePassword.
- **`IAcUserChangePasswordDbSet.cs`** — Combined interface for password change operations. - **`IAcUserChangePasswordDbSet.cs`** — Combined interface for password change operations.
- **`IAcUserToCompanyDbSetBase.cs`** — UserToCompany mapping interface. - **`IAcUserToCompanyDbSetBase.cs`** — UserToCompany mapping interface.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -8,7 +8,3 @@ Database utility extensions for DTO conversion, read-only sessions, and transact
- **`AcDbSessionExtension.cs`** — Session/SessionAsync for read-only operations with error logging. - **`AcDbSessionExtension.cs`** — Session/SessionAsync for read-only operations with error logging.
- **`AcDbTransactionExtension.cs`** — Transaction/TransactionAsync with auto-rollback on failure, OpenTransaction/CommitTransaction helpers. - **`AcDbTransactionExtension.cs`** — Transaction/TransactionAsync with auto-rollback on failure, OpenTransaction/CommitTransaction helpers.
- **`AcDalExtension.cs`** — DAL-level mutex-locked session/transaction wrappers, UpdateSafe/UpdateSafeAsync for optimistic updates with optional callbacks. - **`AcDalExtension.cs`** — DAL-level mutex-locked session/transaction wrappers, UpdateSafe/UpdateSafeAsync for optimistic updates with optional callbacks.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -6,7 +6,3 @@ EF Core entity type configuration for Profile↔Address relationship.
- **`AcProfileEntityTypeConfigurations.cs`** — Default config mapping Profile to Address. - **`AcProfileEntityTypeConfigurations.cs`** — Default config mapping Profile to Address.
- **`AcProfileEntityTypeBuilderExtensions.cs`** — BuildEntityToAddressRelation (one-to-one). - **`AcProfileEntityTypeBuilderExtensions.cs`** — BuildEntityToAddressRelation (one-to-one).
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -8,7 +8,3 @@ EF Core Fluent API configurations for entity relationships (one-to-one, many-to-
|---|---| |---|---|
| [`Users/`](Users/README.md) | User↔Profile and User↔Company relationship configs | | [`Users/`](Users/README.md) | User↔Profile and User↔Company relationship configs |
| [`Profiles/`](Profiles/README.md) | Profile↔Address relationship config | | [`Profiles/`](Profiles/README.md) | Profile↔Address relationship config |
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -6,7 +6,3 @@ EF Core entity type configurations for User and Company relationships.
- **`AcUserEntityTypeConfigurations.cs`** — Default configs: User↔Profile (one-to-one), Company↔Profile with auto-include navigation. - **`AcUserEntityTypeConfigurations.cs`** — Default configs: User↔Profile (one-to-one), Company↔Profile with auto-include navigation.
- **`AcUserEntityTypeBuilderExtensions.cs`** — BuildEntityToProfileRelation (cascade delete), BuildEntityToServiceProviderRelation (many-to-many via UsingEntity). - **`AcUserEntityTypeBuilderExtensions.cs`** — BuildEntityToProfileRelation (cascade delete), BuildEntityToServiceProviderRelation (many-to-many via UsingEntity).
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -24,7 +24,3 @@ Entity Framework Core data access layer with generic DAL pattern, session/transa
| `Microsoft.EntityFrameworkCore.SqlServer` | SQL Server EF Core provider | | `Microsoft.EntityFrameworkCore.SqlServer` | SQL Server EF Core provider |
| `MessagePack` | Serialization annotations | | `MessagePack` | Serialization annotations |
| `Newtonsoft.Json` | JSON support | | `Newtonsoft.Json` | JSON support |
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -6,7 +6,3 @@ Server-side log item entity and interface, extending the client-side `AcLogItemC
- **`IAcLogItem.cs`** — Interface extending `IAcLogItemClient` and `IEntityInt`, adding a `LogHeaderId` property. - **`IAcLogItem.cs`** — Interface extending `IAcLogItemClient` and `IEntityInt`, adding a `LogHeaderId` property.
- **`AcLogItem.cs`** — Entity class mapped to the `LogItem` database table with MessagePack serialization. Provides `Id` (auto-generated) and `LogHeaderId`. - **`AcLogItem.cs`** — Entity class mapped to the `LogItem` database table with MessagePack serialization. Provides `Id` (auto-generated) and `LogHeaderId`.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -16,7 +16,3 @@ Server-side entity implementations extending `AyCode.Entities`. Currently contai
| `AyCode.Entities` | `AcLogItemClient` base class | | `AyCode.Entities` | `AcLogItemClient` base class |
| `AyCode.Utils` | Shared utilities | | `AyCode.Utils` | Shared utilities |
| `MessagePack.Annotations` | `[MessagePackObject]`, `[Key]` for serialization | | `MessagePack.Annotations` | `[MessagePackObject]`, `[Key]` for serialization |
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -5,7 +5,3 @@ Abstract base entity for physical addresses, storing geocoordinates and address
## Key Files ## Key Files
- **`AcAddress.cs`** — Abstract class implementing `IAcAddress` with `Latitude`, `Longitude`, `AddressText`, and validity flags (`IsValid`, `IsHelper`). Uses a non-database-generated `Guid` primary key. - **`AcAddress.cs`** — Abstract class implementing `IAcAddress` with `Latitude`, `Longitude`, `AddressText`, and validity flags (`IsValid`, `IsHelper`). Uses a non-database-generated `Guid` primary key.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -5,7 +5,3 @@ Abstract base entity for groups with public/private visibility. Implements `IGro
## Key Files ## Key Files
- **`GroupBase.cs`** — Abstract class with `Id` (Guid), `IsPublic` flag, and `Created`/`Modified` timestamps. Provides constructors for creating groups with optional explicit IDs. - **`GroupBase.cs`** — Abstract class with `Id` (Guid), `IsPublic` flag, and `Created`/`Modified` timestamps. Provides constructors for creating groups with optional explicit IDs.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -5,7 +5,3 @@ Abstract base entity for geographic locations with longitude, latitude, and an o
## Key Files ## Key Files
- **`LocationBase.cs`** — Abstract class with `Id` (Guid), `Longitude`, `Latitude`, and `Address` properties. Provides constructors that auto-generate IDs or accept explicit ones. - **`LocationBase.cs`** — Abstract class with `Id` (Guid), `Longitude`, `Latitude`, and `Address` properties. Provides constructors that auto-generate IDs or accept explicit ones.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -5,7 +5,3 @@ Client-side log item entity used for structured logging. Serialized with Message
## Key Files ## Key Files
- **`AcLogItemClient.cs`** — Implements `IAcLogItemClient` with fields for `AppType`, `LogLevel`, `ThreadId`, `CategoryName`, `CallerName`, `Text`, and exception details. Uses `[MessagePackObject]` serialization with explicit key indices. - **`AcLogItemClient.cs`** — Implements `IAcLogItemClient` with fields for `AppType`, `LogLevel`, `ThreadId`, `CategoryName`, `CallerName`, `Text`, and exception details. Uses `[MessagePackObject]` serialization with explicit key indices.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -6,7 +6,3 @@ Abstract base entities for email messaging, covering both messages and their rec
- **`AcEmailMessage.cs`** — Generic abstract class (`AcEmailMessage<TEmailRecipient>`) implementing `IAcEmailMessage`. Holds sender, context, subject, body text, email address, read status, and a list of recipients. - **`AcEmailMessage.cs`** — Generic abstract class (`AcEmailMessage<TEmailRecipient>`) implementing `IAcEmailMessage`. Holds sender, context, subject, body text, email address, read status, and a list of recipients.
- **`AcEmailRecipient.cs`** — Generic abstract class (`AcEmailRecipient<TEmailMessage>`) implementing `IAcEmailRecipient`. Links a recipient to an email message via `EmailMessageId` with navigation back to the message entity. - **`AcEmailRecipient.cs`** — Generic abstract class (`AcEmailRecipient<TEmailMessage>`) implementing `IAcEmailRecipient`. Links a recipient to an email message via `EmailMessageId` with navigation back to the message entity.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -5,7 +5,3 @@ Abstract base entity for user/company profiles with name, contact info, and a li
## Key Files ## Key Files
- **`AcProfile.cs`** — Generic abstract class (`AcProfile<TAddress>`) implementing `IAcProfile`. Contains `Name`, `FirstName`, `LastName`, `EmailAddress`, `Description`, `ThumbnailUrl`, and a foreign-key relationship to an `Address` entity. Provides `SetAddress()` and `GetFullName()` helpers with language-aware name ordering. - **`AcProfile.cs`** — Generic abstract class (`AcProfile<TAddress>`) implementing `IAcProfile`. Contains `Name`, `FirstName`, `LastName`, `EmailAddress`, `Description`, `ThumbnailUrl`, and a foreign-key relationship to an `Address` entity. Provides `SetAddress()` and `GetFullName()` helpers with language-aware name ordering.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -34,7 +34,3 @@ Abstract base entity implementations for the AyCode domain model. All entities a
|---|---| |---|---|
| `AyCode.Interfaces` | Interface contracts this project implements | | `AyCode.Interfaces` | Interface contracts this project implements |
| `MessagePack.Annotations` | `[MessagePackObject]` on `AcLogItemClient` | | `MessagePack.Annotations` | `[MessagePackObject]` on `AcLogItemClient` |
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -5,7 +5,3 @@ Abstract base entity for companies/service providers, linking owners, profiles,
## Key Files ## Key Files
- **`AcCompany.cs`** — Generic abstract class (`AcCompany<TUser, TUserToCompany, TProfile, TAddress>`) implementing `IAcCompany`. Holds `Name`, `OwnerId`, `CommissionPercent`, `AffiliateId`, `ReferralId`, and navigation properties to `Profile`, `Users`, and `UserToServiceProviders`. Provides `SetProfile()`, `HasUser()`, and `AddUser()` helper methods. - **`AcCompany.cs`** — Generic abstract class (`AcCompany<TUser, TUserToCompany, TProfile, TAddress>`) implementing `IAcCompany`. Holds `Name`, `OwnerId`, `CommissionPercent`, `AffiliateId`, `ReferralId`, and navigation properties to `Profile`, `Users`, and `UserToServiceProviders`. Provides `SetProfile()`, `HasUser()`, and `AddUser()` helper methods.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -7,7 +7,3 @@ Abstract base entities for user accounts, authentication tokens, and user-to-com
- **`AcUser.cs`** — Generic abstract class (`AcUser<TProfile, TCompany, TUserToServiceProvider, TProfileAddress>`) implementing `IAcUser`. Holds email, password, phone, refresh token, affiliate/referral IDs, and navigation properties to `Profile`, `ServiceProviders`, and `UserToServiceProviders`. - **`AcUser.cs`** — Generic abstract class (`AcUser<TProfile, TCompany, TUserToServiceProvider, TProfileAddress>`) implementing `IAcUser`. Holds email, password, phone, refresh token, affiliate/referral IDs, and navigation properties to `Profile`, `ServiceProviders`, and `UserToServiceProviders`.
- **`AcUserTokenBase.cs`** — Abstract class for user verification tokens with `Token`, `IsActive`, `TokenSent`, and `TokenExpiration` fields. Uses an auto-incremented `int` primary key. - **`AcUserTokenBase.cs`** — Abstract class for user verification tokens with `Token`, `IsActive`, `TokenSent`, and `TokenExpiration` fields. Uses an auto-incremented `int` primary key.
- **`AcUserToCompany.cs`** — Generic abstract class (`AcUserToCompany<TUser, TCompany>`) implementing `IAcUserToCompany`. Many-to-many join entity linking users to companies with a `Permissions` field. - **`AcUserToCompany.cs`** — Generic abstract class (`AcUserToCompany<TUser, TCompany>`) implementing `IAcUserToCompany`. Many-to-many join entity linking users to companies with a `Permissions` field.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -7,7 +7,3 @@ Server-side login interfaces defining contracts for login DTOs, authenticated se
- **`IAcLoginDtoBase.cs`** — Empty marker interface for login DTO types. - **`IAcLoginDtoBase.cs`** — Empty marker interface for login DTO types.
- **`IAcLoggedInModelBase.cs`** — Generic interface for authenticated session state, exposing `IsLoggedIn`, `LoggedInUser`, `AccessToken`, and `LoginErrorCode`, with methods for login and logout. - **`IAcLoggedInModelBase.cs`** — Generic interface for authenticated session state, exposing `IsLoggedIn`, `LoggedInUser`, `AccessToken`, and `LoginErrorCode`, with methods for login and logout.
- **`IAcLoginServiceServer.cs`** — Server login service interface with `Login`/`LoginAsync` and `UpdatePassword` methods, generic over user, token, profile, and company types. - **`IAcLoginServiceServer.cs`** — Server login service interface with `Login`/`LoginAsync` and `UpdatePassword` methods, generic over user, token, profile, and company types.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -18,7 +18,3 @@ Server-side interface contracts extending `AyCode.Interfaces`. Defines authentic
| `AyCode.Core.Server` | Server-side core | | `AyCode.Core.Server` | Server-side core |
| `AyCode.Entities` | Entity base classes | | `AyCode.Entities` | Entity base classes |
| `AyCode.Entities.Server` | Server-side entities | | `AyCode.Entities.Server` | Server-side entities |
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -5,7 +5,3 @@ Data transfer object interface for address data, defining the minimal address sh
## Key Files ## Key Files
- **`IAcAddressDtoBase.cs`** — Base address DTO interface with `IsValid`, `IsHelper`, `Latitude`, `Longitude`, and `AddressText` properties. Extends `IEntityGuid`. - **`IAcAddressDtoBase.cs`** — Base address DTO interface with `IsValid`, `IsHelper`, `Latitude`, `Longitude`, and `AddressText` properties. Extends `IEntityGuid`.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -7,7 +7,3 @@ Interfaces for address entities, including the full address model, foreign key c
- **`IAcAddress.cs`** — Full address interface combining `IAcAddressDtoBase` with `ITimeStampInfo`. - **`IAcAddress.cs`** — Full address interface combining `IAcAddressDtoBase` with `ITimeStampInfo`.
- **`IAcAddressRelation.cs`** — Generic navigation property interface for entities that hold an `Address` reference. - **`IAcAddressRelation.cs`** — Generic navigation property interface for entities that hold an `Address` reference.
- **`IAcAddressForeignKey.cs`** — Foreign key contract exposing `AddressId` (Guid), extends `IForeignKey`. - **`IAcAddressForeignKey.cs`** — Foreign key contract exposing `AddressId` (Guid), extends `IForeignKey`.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -10,7 +10,3 @@ Core entity interfaces that define primary key contracts and soft-delete behavio
- **`IAcSoftRemoveEntity.cs`** — Adds a `Deleted` boolean flag for soft-delete support. - **`IAcSoftRemoveEntity.cs`** — Adds a `Deleted` boolean flag for soft-delete support.
- **`IAcSoftRemoveEntityInt.cs`** — Soft-delete entity with `int` key. - **`IAcSoftRemoveEntityInt.cs`** — Soft-delete entity with `int` key.
- **`IAcSoftRemoveEntityGuid.cs`** — Soft-delete entity with `Guid` key. - **`IAcSoftRemoveEntityGuid.cs`** — Soft-delete entity with `Guid` key.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -5,7 +5,3 @@ Interface for entities that support a comment/note field.
## Key Files ## Key Files
- **`IEntityComment.cs`** — Defines a single `Comment` string property for attaching comments to entities. - **`IEntityComment.cs`** — Defines a single `Comment` string property for attaching comments to entities.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -5,7 +5,3 @@ Interface defining message type enumerations used across the messaging system.
## Key Files ## Key Files
- **`IMessageTypes.cs`** — Contains the `IMessageTypes` interface with a nested `MessageTypesEnum` enum placeholder. - **`IMessageTypes.cs`** — Contains the `IMessageTypes` interface with a nested `MessageTypesEnum` enum placeholder.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -5,7 +5,3 @@ Interface for group entities with identity and timestamp support.
## Key Files ## Key Files
- **`IGroupBase.cs`** — Base group interface extending `IEntityGuid` and `ITimeStampInfo`. - **`IGroupBase.cs`** — Base group interface extending `IEntityGuid` and `ITimeStampInfo`.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -5,7 +5,3 @@ Interface for location entities providing geographic coordinates and address tex
## Key Files ## Key Files
- **`ILocationBase.cs`** — Defines `Longitude`, `Latitude`, and `Address` properties. Extends `IEntityGuid`. - **`ILocationBase.cs`** — Defines `Longitude`, `Latitude`, and `Address` properties. Extends `IEntityGuid`.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -7,7 +7,3 @@ Interfaces for authentication and login service contracts, covering login state,
- **`IAcLoginServiceBase.cs`** — Base login service with `IsLoggedIn` and `LoggedInUser` properties, generic over user/profile/company types. - **`IAcLoginServiceBase.cs`** — Base login service with `IsLoggedIn` and `LoggedInUser` properties, generic over user/profile/company types.
- **`IAcLoginServiceCommon.cs`** — Extends the base with `Logout`, `Registration`, `ChangePassword`, and `ForgotPassword` methods (sync and async). - **`IAcLoginServiceCommon.cs`** — Extends the base with `Logout`, `Registration`, `ChangePassword`, and `ForgotPassword` methods (sync and async).
- **`IAcLoginServiceClient.cs`** — Client-side login service marker interface extending `IAcLoginServiceCommon`. - **`IAcLoginServiceClient.cs`** — Client-side login service marker interface extending `IAcLoginServiceCommon`.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -7,7 +7,3 @@ Interfaces for media-related properties such as thumbnail URLs and user media id
- **`IMediaInfo.cs`** — Composite interface combining `IMediaThumbnailUrl` and `IMediaUserMediaId`. - **`IMediaInfo.cs`** — Composite interface combining `IMediaThumbnailUrl` and `IMediaUserMediaId`.
- **`IMediaThumbnailUrl.cs`** — Defines an optional `ThumbnailUrl` string property. - **`IMediaThumbnailUrl.cs`** — Defines an optional `ThumbnailUrl` string property.
- **`IMediaUserMediaId.cs`** — Defines an optional `UserMediaId` (Guid?) property. - **`IMediaUserMediaId.cs`** — Defines an optional `UserMediaId` (Guid?) property.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -12,7 +12,3 @@ Interfaces for the email/messaging system, covering message entities, recipients
- **`IAcEmailRecipientsRelation.cs`** — Navigation property exposing a `List<TEmailRecipient>` collection. - **`IAcEmailRecipientsRelation.cs`** — Navigation property exposing a `List<TEmailRecipient>` collection.
- **`IAcEmailMessageForeignKey.cs`** — Foreign key contract for `EmailMessageId` (generic and Guid variants). - **`IAcEmailMessageForeignKey.cs`** — Foreign key contract for `EmailMessageId` (generic and Guid variants).
- **`IAcMessageSenderService.cs`** — Service interface with `SendMessageAsync` for dispatching messages. - **`IAcMessageSenderService.cs`** — Service interface with `SendMessageAsync` for dispatching messages.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -7,7 +7,3 @@ DTO interfaces for profile data, defining name fields and the base profile DTO s
- **`IAcFullName.cs`** — Defines `FullName` (read-only), `FirstName`, and `LastName` properties. - **`IAcFullName.cs`** — Defines `FullName` (read-only), `FirstName`, and `LastName` properties.
- **`IAcProfileName.cs`** — Extends `IAcFullName` with a `Name` property. - **`IAcProfileName.cs`** — Extends `IAcFullName` with a `Name` property.
- **`IAcProfileDtoBase.cs`** — Base profile DTO with `EmailAddress`, `Description`, media info, and address foreign key. Generic variant adds an address relation. - **`IAcProfileDtoBase.cs`** — Base profile DTO with `EmailAddress`, `Description`, media info, and address foreign key. Generic variant adds an address relation.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -7,7 +7,3 @@ Interfaces for user/company profile entities, including navigation relations and
- **`IAcProfile.cs`** — Full profile interface with `GetFullName` and `SetAddress` methods, extends `IAcProfileDtoBase<TAddress>` and `ITimeStampInfo`. - **`IAcProfile.cs`** — Full profile interface with `GetFullName` and `SetAddress` methods, extends `IAcProfileDtoBase<TAddress>` and `ITimeStampInfo`.
- **`IAcProfileRelation.cs`** — Generic navigation property for entities holding a `Profile` reference. - **`IAcProfileRelation.cs`** — Generic navigation property for entities holding a `Profile` reference.
- **`IAcProfileForeignKey.cs`** — Foreign key contract exposing `ProfileId` (Guid), extends `IForeignKey`. - **`IAcProfileForeignKey.cs`** — Foreign key contract exposing `ProfileId` (Guid), extends `IForeignKey`.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -40,7 +40,3 @@ Domain interface contracts for the AyCode platform. Defines the shape of entitie
| Dependency | Purpose | | Dependency | Purpose |
|---|---| |---|---|
| `AyCode.Core` | Core library (`IId<T>`, `IForeignKey`, enums, error codes) | | `AyCode.Core` | Core library (`IId<T>`, `IForeignKey`, enums, error codes) |
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -8,7 +8,3 @@ Interfaces for company/service provider entities, covering base properties, prof
- **`IAcCompany.cs`** — Multiple generic variants linking a company to its profile, address, and user collections. - **`IAcCompany.cs`** — Multiple generic variants linking a company to its profile, address, and user collections.
- **`IAcCompanyRelation.cs`** — Navigation property for entities holding `ServiceProviders` and `UserToServiceProviders` lists. - **`IAcCompanyRelation.cs`** — Navigation property for entities holding `ServiceProviders` and `UserToServiceProviders` lists.
- **`IAcCompanyForeignKey.cs`** — Foreign key contract exposing `ServiceProviderId` (Guid). - **`IAcCompanyForeignKey.cs`** — Foreign key contract exposing `ServiceProviderId` (Guid).
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -5,7 +5,3 @@ Interface for secure key-value storage operations (save, get, delete, clear).
## Key Files ## Key Files
- **`ISecureStorageHandler.cs`** — Async methods: `SaveToSecureStorageAsync`, `GetFromSecureStorageAsync`, `DeleteFromSecureStorageAsync`, and `ClearAllSecureStorageAsync`. - **`ISecureStorageHandler.cs`** — Async methods: `SaveToSecureStorageAsync`, `GetFromSecureStorageAsync`, `DeleteFromSecureStorageAsync`, and `ClearAllSecureStorageAsync`.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -8,7 +8,3 @@ Interfaces for entity timestamp tracking (created/modified) and a marker to disa
- **`ITimeStampModified.cs`** — Defines a `Modified` DateTime property. - **`ITimeStampModified.cs`** — Defines a `Modified` DateTime property.
- **`ITimeStampInfo.cs`** — Composite interface combining `ITimeStampCreated` and `ITimeStampModified`. - **`ITimeStampInfo.cs`** — Composite interface combining `ITimeStampCreated` and `ITimeStampModified`.
- **`ITimeStampDisableAutoSet.cs`** — Marker interface to opt out of automatic timestamp population. - **`ITimeStampDisableAutoSet.cs`** — Marker interface to opt out of automatic timestamp population.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -7,7 +7,3 @@ DTO interfaces for user data at different detail levels -- minimal, base, and de
- **`IAcUserDtoMinBase.cs`** — Minimal user DTO with `AffiliateId`. Generic variant adds a profile relation. - **`IAcUserDtoMinBase.cs`** — Minimal user DTO with `AffiliateId`. Generic variant adds a profile relation.
- **`IAcUserDtoBase.cs`** — Base user DTO extending the minimal DTO. Generic variants add profile and company relations. - **`IAcUserDtoBase.cs`** — Base user DTO extending the minimal DTO. Generic variants add profile and company relations.
- **`IAcUserDtoDetailBase.cs`** — Detailed user DTO combining `IAcUserBase` with DTO base interfaces. Generic variants add profile, company, and address type parameters. - **`IAcUserDtoDetailBase.cs`** — Detailed user DTO combining `IAcUserBase` with DTO base interfaces. Generic variants add profile, company, and address type parameters.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -17,7 +17,3 @@ Interfaces for user entities, covering base properties, authentication fields, c
- **`IAcUserToServiceProviderRelation.cs`** — Relation linking a user to a service provider. - **`IAcUserToServiceProviderRelation.cs`** — Relation linking a user to a service provider.
- **`IAcUserModelDtoMinBase.cs`** — Minimal user model DTO marker extending `IAcModelDtoBase`. - **`IAcUserModelDtoMinBase.cs`** — Minimal user model DTO marker extending `IAcModelDtoBase`.
- **`IAcUserForeignKey.cs`** — Foreign key contract exposing `UserId` (Guid). - **`IAcUserForeignKey.cs`** — Foreign key contract exposing `UserId` (Guid).
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -7,7 +7,3 @@ Reflection-based infrastructure for dynamically dispatching method calls by mess
- **`AcMethodInfoModel.cs`** — Wraps a `MethodInfo` and its `TagAttribute` with cached parameter metadata. - **`AcMethodInfoModel.cs`** — Wraps a `MethodInfo` and its `TagAttribute` with cached parameter metadata.
- **`AcDynamicMethodCallModel.cs`** — Binds an object instance to its attributed methods, using a static `ConcurrentDictionary` and `FrozenDictionary` cache keyed by message tag. Reflection runs once per type. - **`AcDynamicMethodCallModel.cs`** — Binds an object instance to its attributed methods, using a static `ConcurrentDictionary` and `FrozenDictionary` cache keyed by message tag. Reflection runs once per type.
- **`AcDynamicMethodRegistry.cs`** — Registry with lazy method lookup across multiple registered instances. Caches discovered methods statically by message tag and resolves instances per request. - **`AcDynamicMethodRegistry.cs`** — Registry with lazy method lookup across multiple registered instances. Caches discovered methods statically by message tag and resolves instances per request.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -5,7 +5,3 @@ Server-side implementation of the logged-in session model, managing user authent
## Key Files ## Key Files
- **`AcLoggedInModelServer.cs`** — Generic implementation of `IAcLoggedInModelBase`. Tracks `LoggedInUser`, `AccessToken`, and `LoginErrorCode`, with `AddLoggedInUser` and `Logout` methods. - **`AcLoggedInModelServer.cs`** — Generic implementation of `IAcLoggedInModelBase`. Tracks `LoggedInUser`, `AccessToken`, and `LoginErrorCode`, with `AddLoggedInUser` and `Logout` methods.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -31,7 +31,3 @@ Server-side models: authentication state and dynamic method dispatch for SignalR
| `AyCode.Interfaces.Server` | `IAcLoggedInModelBase` | | `AyCode.Interfaces.Server` | `IAcLoggedInModelBase` |
| `AyCode.Models` | Shared models | | `AyCode.Models` | Shared models |
| `AyCode.Services` | `TagAttribute` for SignalR method tagging | | `AyCode.Services` | `TagAttribute` for SignalR method tagging |
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -6,7 +6,3 @@ Enumerations for messaging-related types used across the application models.
- **`MessageContentType.cs`** — Defines content types for messages: Text, Image, Video, Audio, File, Location, Contact, Sticker, Gif, VoiceNote, System. - **`MessageContentType.cs`** — Defines content types for messages: Text, Image, Video, Audio, File, Location, Contact, Sticker, Gif, VoiceNote, System.
- **`MessageTypesEnum.cs`** — Defines message delivery channels: email (1), sms (2), push (3), chat (4). - **`MessageTypesEnum.cs`** — Defines message delivery channels: email (1), sms (2), push (3), chat (4).
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -5,7 +5,3 @@ Placeholder namespace for message models. The `EmailMessage` class is currently
## Key Files ## Key Files
- **`EmailMessage.cs`** — Contains a commented-out `EmailMessage` class (with Subject and HtmlContent properties) that previously extended `NoticeBase`. Currently inactive. - **`EmailMessage.cs`** — Contains a commented-out `EmailMessage` class (with Subject and HtmlContent properties) that previously extended `NoticeBase`. Currently inactive.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -35,7 +35,3 @@ Shared DTOs (Data Transfer Objects) and view models for the AyCode platform. Bri
| `AyCode.Core` | Core types | | `AyCode.Core` | Core types |
| `AyCode.Entities` | Entity base classes for DTO-entity mapping | | `AyCode.Entities` | Entity base classes for DTO-entity mapping |
| `AyCode.Interfaces` | Interface contracts implemented by DTOs | | `AyCode.Interfaces` | Interface contracts implemented by DTOs |
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -10,7 +10,3 @@ Abstract base DTOs for user data transfer, including minimal, standard, and deta
- **`AcPasswordDtoBase.cs`** — Base class for password operations with a `NewPassword` property. - **`AcPasswordDtoBase.cs`** — Base class for password operations with a `NewPassword` property.
- **`AcChangePasswordDto.cs`** — Extends `AcPasswordDtoBase` with `UserId` and `OldPassword` for password change requests. - **`AcChangePasswordDto.cs`** — Extends `AcPasswordDtoBase` with `UserId` and `OldPassword` for password change requests.
- **`AcForgotPasswordDto.cs`** — Extends `AcPasswordDtoBase` with `Email` for forgot-password flows. - **`AcForgotPasswordDto.cs`** — Extends `AcPasswordDtoBase` with `Email` for forgot-password flows.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -5,7 +5,3 @@ Abstract base for login service integration tests.
## Key Files ## Key Files
- **`AcLoginServiceServerTestBase.cs`** — 10 generic type parameters. Tests: RegisterUser (create + validate + cleanup), LoginUser (valid, wrong email, wrong password with error codes), ChangePassword (change + verify + restore). - **`AcLoginServiceServerTestBase.cs`** — 10 generic type parameters. Tests: RegisterUser (create + validate + cleanup), LoginUser (valid, wrong email, wrong password with error codes), ChangePassword (change + verify + restore).
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -13,7 +13,3 @@ Comprehensive server-side tests for SignalR communication, DataSource operations
- **`TestLogger.cs`** — Re-exports TestLogger from AyCode.Core.Tests. - **`TestLogger.cs`** — Re-exports TestLogger from AyCode.Core.Tests.
- **`InvokeMethodExtensionTests.cs`** — Tests MethodInfo.InvokeMethod: sync, async Task<T> unwrapping, Task.FromResult<T> (production bug fix), non-generic Task, complex objects. - **`InvokeMethodExtensionTests.cs`** — Tests MethodInfo.InvokeMethod: sync, async Task<T> unwrapping, Task.FromResult<T> (production bug fix), non-generic Task, complex objects.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -16,7 +16,3 @@ Full SignalR client→hub→service test infrastructure with testable components
| Folder | Purpose | | Folder | Purpose |
|---|---| |---|---|
| [`SignalRDatasources/`](SignalRDatasources/README.md) | DataSource CRUD and collection tests | | [`SignalRDatasources/`](SignalRDatasources/README.md) | DataSource CRUD and collection tests |
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -24,7 +24,3 @@ DataSource CRUD, collection, tracking, and filter tests. Tested with List and Ac
### Test DataSources ### Test DataSources
- **`TestOrderItemListDataSource.cs`** — DataSource with List<TestOrderItem>. - **`TestOrderItemListDataSource.cs`** — DataSource with List<TestOrderItem>.
- **`TestOrderItemObservableDataSource.cs`** — DataSource with AcObservableCollection<TestOrderItem>. - **`TestOrderItemObservableDataSource.cs`** — DataSource with AcObservableCollection<TestOrderItem>.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -5,7 +5,3 @@ Server-side email delivery via SendGrid.
## Key Files ## Key Files
- **`AcEmailServiceServer.cs`** — Implements `IAcEmailServiceServer`. Uses `SendGridClient` to send templated emails. Methods: `SendLostPasswordEmailAsync()` (password reset with token), `SendRegistrationEmailAsync()` (confirmation with token). - **`AcEmailServiceServer.cs`** — Implements `IAcEmailServiceServer`. Uses `SendGridClient` to send templated emails. Methods: `SendLostPasswordEmailAsync()` (password reset with token), `SendRegistrationEmailAsync()` (confirmation with token).
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -5,7 +5,3 @@ Server-side login service with JWT token management.
## Key Files ## Key Files
- **`AcLoginServiceServer.cs`** — Heavily generic class extending `AcLoginServiceBase`, implementing `IAcLoginServiceServer`. Full authentication flow: `Login()`, `Logout()`, `Registration()`, `ChangePassword()`, `ForgotPassword()`. JWT methods: `GenerateAccessToken()`, `GenerateRefreshToken()`, `GetPrincipalFromExpiredToken()`. Uses DAL for database access. - **`AcLoginServiceServer.cs`** — Heavily generic class extending `AcLoginServiceBase`, implementing `IAcLoginServiceServer`. Full authentication flow: `Login()`, `Logout()`, `Registration()`, `ChangePassword()`, `ForgotPassword()`. JWT methods: `GenerateAccessToken()`, `GenerateRefreshToken()`, `GetPrincipalFromExpiredToken()`. Uses DAL for database access.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -25,7 +25,3 @@ Server-side service implementations: JWT authentication, SendGrid email delivery
| `Microsoft.AspNetCore.SignalR.*` | SignalR server | | `Microsoft.AspNetCore.SignalR.*` | SignalR server |
| `Microsoft.AspNetCore.Cryptography.KeyDerivation` | Password hashing | | `Microsoft.AspNetCore.Cryptography.KeyDerivation` | Password hashing |
| `Microsoft.AspNetCore.Authentication.JwtBearer` | JWT auth (transitive) | | `Microsoft.AspNetCore.Authentication.JwtBearer` | JWT auth (transitive) |
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -20,7 +20,3 @@ Server-side SignalR hub infrastructure: hub base class, session management, data
### Utilities ### Utilities
- **`ExtensionMethods.cs`** — `InvokeMethod()` — invokes methods and unwraps `Task`/`Task<T>`/`ValueTask` results. - **`ExtensionMethods.cs`** — `InvokeMethod()` — invokes methods and unwraps `Task`/`Task<T>`/`ValueTask` results.
- **`TrackingItemHelpers.cs`** — Deep clone helpers: `JsonClone<T>()`, `ReflectionClone<T>()`. - **`TrackingItemHelpers.cs`** — Deep clone helpers: `JsonClone<T>()`, `ReflectionClone<T>()`.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -11,7 +11,3 @@ MSTest project for service layer testing. Focuses on SignalR message serializati
## Key Files (Root) ## Key Files (Root)
- **`MSTestSettings.cs`** — Assembly-level parallel test execution (MethodLevel scope). - **`MSTestSettings.cs`** — Assembly-level parallel test execution (MethodLevel scope).
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -5,7 +5,3 @@ SignalR message serialization and full round-trip tests.
## Key Files ## Key Files
- **`PostJsonDataMessageTests.cs`** — Full pipeline test: client creates message → binary serialize → server deserialize → parameter extract → service result → response create → binary response → client deserialize → type convert. Covers int, string, bool with [DataRow]. - **`PostJsonDataMessageTests.cs`** — Full pipeline test: client creates message → binary serialize → server deserialize → parameter extract → service result → response create → binary response → client deserialize → type convert. Covers int, string, bool with [DataRow].
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -9,7 +9,3 @@ Remote log writers for sending log items over HTTP, SignalR, or to the browser c
- **`AcSignaRClientLogItemWriter.cs`** — Sends `AcLogItemClient` items to a SignalR hub. Manages `HubConnection` lifecycle with `StartConnection()`/`StopConnection()`. - **`AcSignaRClientLogItemWriter.cs`** — Sends `AcLogItemClient` items to a SignalR hub. Manages `HubConnection` lifecycle with `StartConnection()`/`StopConnection()`.
All three implement `IAcLogWriterClientBase`. All three implement `IAcLogWriterClientBase`.
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -6,7 +6,3 @@ Base and client-side login service implementations.
- **`AcLoginServiceBase.cs`** — Abstract generic base implementing `IAcLoginServiceBase`. Provides `IsLoggedIn` and `LoggedInUser` properties. Heavily constrained generics (TUser, TProfile, TCompany, TUserToServiceProvider, TProfileAddress). - **`AcLoginServiceBase.cs`** — Abstract generic base implementing `IAcLoginServiceBase`. Provides `IsLoggedIn` and `LoggedInUser` properties. Heavily constrained generics (TUser, TProfile, TCompany, TUserToServiceProvider, TProfileAddress).
- **`AcLoginServiceClient.cs`** — Client-side login service extending `AcLoginServiceBase`, implementing `IAcLoginServiceClient`. Provides stubs for `Login`, `Logout`, `Registration`, `ChangePassword`, `ForgotPassword` (sync + async variants). - **`AcLoginServiceClient.cs`** — Client-side login service extending `AcLoginServiceBase`, implementing `IAcLoginServiceClient`. Provides stubs for `Login`, `Logout`, `Registration`, `ChangePassword`, `ForgotPassword` (sync + async variants).
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

View File

@ -21,7 +21,3 @@ Shared service implementations: SignalR communication (custom binary protocol),
| `Microsoft.AspNetCore.SignalR.Client` | SignalR client | | `Microsoft.AspNetCore.SignalR.Client` | SignalR client |
| `Microsoft.AspNetCore.SignalR.Common` | `IHubProtocol` for custom binary protocol | | `Microsoft.AspNetCore.SignalR.Common` | `IHubProtocol` for custom binary protocol |
| `Microsoft.AspNetCore.Authentication.JwtBearer` | JWT authentication | | `Microsoft.AspNetCore.Authentication.JwtBearer` | JWT authentication |
---
> **LLM Maintenance:** If you modify code in this folder, update this README to reflect the changes. If you notice the README content does not match the current code, automatically update the README to match the code.

Some files were not shown because too many files have changed in this diff Show More