Compare commits

..

3 Commits

Author SHA1 Message Date
Loretta 7322af703b Switch archive policy to year-month buckets (LLMP-DEC-67)
Updated all docs, skills, and examples to use year-month archive files (`*_<YYYY>_<MM>.md`) for `_ISSUES.md`, `_TODO.md`, and `LLM_PROTOCOL_DECISIONS.md`. Decision Log rolling window now governed by LLMP-DEC-67 (last 15 entries active). Clarified archive file handling, updated uniqueness checks, and revised references throughout. Closed and documented resolution for `FBANKAPP-DMODEL-I-P6X4` in `DATAMODEL_ISSUES.md`.
2026-06-15 18:01:44 +02:00
Loretta 7c47d212f2 EKÁER grid: status enum fix, batch create, UI/UX, DB guard
- Fixed EkaerHistory status persistence (int+enum wrapper for linq2db)
- Added batch EKÁER record creation (toolbar date picker, SignalR, UI)
- Enhanced GridEkaerHistory: status, error, XML copy, manual edit
- Improved column display format handling in MgGridInfoPanel
- Updated SignalR binary protocol streaming strategy doc
- Added DB guard PowerShell hook: blocks non-_DEV DB shell access
- New styles for EKÁER toolbar date picker
2026-06-11 08:52:09 +02:00
Loretta 04f0d7d3e3 Refactor: remove Server DLLs, unify SignalR references
- Removed all AyCode.Services.Server and Server DLL references from projects and code; now use only AyCode.Services and AyCode.Services.SignalRs.
- Updated all documentation links to reference AyCode.Services/docs/SIGNALR_DATASOURCE/README.md.
- Enabled AOT compilation in FruitBankHybrid.Web.Client.
- Added InternalsVisibleTo for AyCode.Services.Server.Tests to support internal testing.
- Introduced AcBinaryProtocolThreadPoolTests for thread-pool regression and contract testing.
- Added P2 feature TODO for per-message protocol mode selection in AcBinaryHubProtocol.
- Cleaned up using directives and removed obsolete Server-specific references.
- Minor formatting and whitespace improvements.
2026-06-08 16:53:27 +02:00
9 changed files with 16 additions and 15 deletions

File diff suppressed because one or more lines are too long

View File

@ -16,7 +16,6 @@
<PackageReference Include="DevExpress.Data" Version="25.1.3" />
<PackageReference Include="MessagePack" Version="3.1.4" />
<PackageReference Include="Microsoft.AspNetCore.SignalR.Core" Version="1.2.0" />
<PackageReference Include="Microsoft.AspNetCore.SignalR.Client" Version="9.0.11" />
<PackageReference Include="Microsoft.AspNetCore.SignalR.Common" Version="9.0.11" />
@ -41,9 +40,6 @@
<Reference Include="AyCode.Services">
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\$(_AyCodeCoresReferenceBuildSubPath)\AyCode.Services.dll</HintPath>
</Reference>
<Reference Include="AyCode.Services.Server">
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\$(_AyCodeCoresReferenceBuildSubPath)\AyCode.Services.Server.dll</HintPath>
</Reference>
<Reference Include="AyCode.Utils">
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\$(_AyCodeCoresReferenceBuildSubPath)\AyCode.Utils.dll</HintPath>
</Reference>

View File

@ -3,7 +3,6 @@ using AyCode.Core.Enums;
using AyCode.Core.Helpers;
using AyCode.Core.Interfaces;
using AyCode.Core.Loggers;
using AyCode.Services.Server.SignalRs;
using AyCode.Services.SignalRs;
using AyCode.Utils.Extensions;
using DevExpress.Blazor;

View File

@ -256,12 +256,19 @@ public partial class MgGridInfoPanel : ComponentBase, IAsyncDisposable, IInfoPan
return displayText;
}
// Apply column's DisplayFormat if available
// Apply column's DisplayFormat if available.
// A DxGrid kétféle formátumot fogad: kompozit ("{0:yyyy.MM.dd}") és sima formátum-specifikáló
// ("yyyy.MM.dd HH:mm"). A string.Format csak a kompozitot érti — placeholder nélküli formátumnál
// NEM dob hibát, hanem a format-stringet adja vissza szó szerint, ezért külön ág kell.
if (!string.IsNullOrEmpty(column.DisplayFormat))
{
try
{
if (column.DisplayFormat.Contains("{0"))
return string.Format(column.DisplayFormat, value);
if (value is IFormattable formattable)
return formattable.ToString(column.DisplayFormat, null);
}
catch
{

View File

@ -1,7 +1,6 @@
using AyCode.Core.Helpers;
using AyCode.Core.Interfaces;
using AyCode.Core.Loggers;
using AyCode.Services.Server.SignalRs;
using AyCode.Services.SignalRs;
using DevExpress.Blazor;
using DevExpress.Data.Filtering;

View File

@ -1,7 +1,7 @@
# MgGrid — DataSource
> Part of the MgGrid system. See `README.md` for overview and component hierarchy.
> For the underlying `AcSignalRDataSource`: `AyCode.Services.Server/docs/SIGNALR_DATASOURCE/README.md` (in AyCode.Core repo)
> For the underlying `AcSignalRDataSource`: `AyCode.Services/docs/SIGNALR_DATASOURCE/README.md` (in AyCode.Core repo)
## MgGridSignalRDataSource

View File

@ -20,7 +20,7 @@
| `UpdateMessageTag` | `int` | Tag for "update item" request |
| `RemoveMessageTag` | `int` | Tag for "remove item" request |
These are bundled into a `SignalRCrudTags` during `OnInitializedAsync`. See `AyCode.Services.Server/docs/SIGNALR_DATASOURCE/README.md` (in AyCode.Core repo) for details.
These are bundled into a `SignalRCrudTags` during `OnInitializedAsync`. See `AyCode.Services/docs/SIGNALR_DATASOURCE/README.md` (in AyCode.Core repo) for details.
## Data & Context Parameters

View File

@ -3,7 +3,7 @@
> Comprehensive documentation for the **MgGrid** component family — the primary UI data grid pattern in the AyCode.Blazor framework.
> Source: `Components/Grids/`
> For SignalR transport: `AyCode.Services/docs/SIGNALR/README.md` (in AyCode.Core repo)
> For `AcSignalRDataSource`: `AyCode.Services.Server/docs/SIGNALR_DATASOURCE/README.md` (in AyCode.Core repo)
> For `AcSignalRDataSource`: `AyCode.Services/docs/SIGNALR_DATASOURCE/README.md` (in AyCode.Core repo)
## Overview
@ -59,7 +59,7 @@ MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClient>
| Parameter | Constraint | Purpose |
|---|---|---|
| `TSignalRDataSource` | `: AcSignalRDataSource<…>` | SignalR-backed data source (see `AyCode.Services.Server/docs/SIGNALR_DATASOURCE/README.md` in AyCode.Core repo) |
| `TSignalRDataSource` | `: AcSignalRDataSource<…>` | SignalR-backed data source (see `AyCode.Services/docs/SIGNALR_DATASOURCE/README.md` in AyCode.Core repo) |
| `TDataItem` | `: class, IId<TId>` | Entity type displayed in the grid |
| `TId` | `: struct` | Primary key type (`int`, `Guid`) |
| `TLoggerClient` | `: AcLoggerBase` | Logger for diagnostics |

View File

@ -8,7 +8,7 @@ Blazor/MAUI UI terminology. For core framework terms see `AyCode.Core/docs/GLOSS
|---|---|
| **DxGrid** | DevExpress Blazor data grid. Used with `AcSignalRDataSource` for real-time SignalR data. |
| **CardView** | Card-style layout wrapping DxGrid. Mobile-friendly alternative to table grids. |
| **AcSignalRDataSource** | Grid data source backed by SignalR. Handles load, CRUD, filtering, and change tracking. See `AyCode.Services.Server/docs/SIGNALR_DATASOURCE/README.md` in AyCode.Core repo. |
| **AcSignalRDataSource** | Grid data source backed by SignalR. Handles load, CRUD, filtering, and change tracking. See `AyCode.Services/docs/SIGNALR_DATASOURCE/README.md` in AyCode.Core repo. |
| **AcExpressionNode** | Serializable LINQ expression tree. Grid filters are serialized as expression nodes and sent to server. |
## MgGrid System
@ -26,7 +26,7 @@ For full technical reference see `AyCode.Blazor.Components/docs/MGGRID/README.md
| **MgGridSignalRDataSource** | `GridCustomDataSource` wrapping `AcSignalRDataSource`. Local cache, background refresh. |
| **IMgGridBase** | Public interface: `IsSyncing`, `GridEditState`, `ParentGrid`, `StepPrevRow/NextRow`, layout persistence methods. |
| **MgGridEditState** | Enum: `None` (no edit), `New` (adding item), `Edit` (modifying item). |
| **SignalRCrudTags** | Bundle of 5 integer message tags (GetAll, GetItem, Add, Update, Remove) for one entity type. See `AyCode.Services.Server/docs/SIGNALR_DATASOURCE/README.md` in AyCode.Core repo. |
| **SignalRCrudTags** | Bundle of 5 integer message tags (GetAll, GetItem, Add, Update, Remove) for one entity type. See `AyCode.Services/docs/SIGNALR_DATASOURCE/README.md` in AyCode.Core repo. |
| **IsMasterGrid** | `true` when `ParentDataItem == null` — top-level grid (not detail). |
| **AutoSaveLayoutName** | Base name for localStorage layout keys. Default: `"Grid{TDataItem.Name}"`. |