# AyCode.Services

@project {
  type = "framework"
}

Shared service implementations: SignalR communication (custom binary protocol), ASP.NET Core MVC formatters for the AcBinary wire format, login services, and remote log writers.

## Documentation

| Document | Topic |
|---|---|
| `SIGNALR/README.md` | Client-side SignalR transport (tags, wire protocol, req/resp flow) |
| `SIGNALR_BINARY_PROTOCOL/README.md` | Binary-over-SignalR wire format, chunked framing |
| `MVC/README.md` | ASP.NET Core MVC formatters for AcBinary (`application/vnd.acbinary`) — **temporarily disabled** |
| `LOGGING/README.md` | Remote log writers (HTTP, browser console, SignalR) |

## Folder Structure

| Folder | Purpose |
|---|---|
| [`Loggers/`](Loggers/README.md) | Remote log writers: HTTP, browser console (JS interop), SignalR |
| [`Logins/`](Logins/README.md) | Base and client-side login service implementations |
| [`Mvc/`](Mvc/README.md) | ASP.NET Core MVC `InputFormatter` / `OutputFormatter` for AcBinary wire format — **temporarily disabled** (block-commented, FrameworkReference removed) |
| [`SignalRs/`](SignalRs/README.md) | Custom binary SignalR protocol, client base, message tagging, serialization |

## Dependencies

| Dependency | Purpose |
|---|---|
| `AyCode.Core` | Core types, serializers, compression |
| `AyCode.Entities` | Entity base classes |
| `AyCode.Interfaces` | Service contracts |
| `AyCode.Models` | DTOs |
| ~~`Microsoft.AspNetCore.App` (FrameworkReference)~~ | _temporarily disabled — see `Mvc/README.md`_ |
| `Microsoft.AspNetCore.SignalR.Client` | SignalR client |
| `Microsoft.AspNetCore.SignalR.Common` | `IHubProtocol` for custom binary protocol |
| `Microsoft.AspNetCore.Authentication.JwtBearer` | JWT authentication |
