@@ -89,8 +89,8 @@ MyBlog follows **Clean Architecture** (also known as Onion Architecture), ensuri
8989
9090```
9191┌─────────────────────────────────────────────────────────────────┐
92- │ MyBlog.Web │
93- │ (Presentation Layer) │
92+ │ MyBlog.Web │
93+ │ (Presentation Layer) │
9494│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌───────────┐ │
9595│ │ Pages/ │ │ Shared/ │ │ Middleware/ │ │ Hubs/ │ │
9696│ │ Components │ │ Components │ │Rate Limiting│ │ SignalR │ │
@@ -99,8 +99,8 @@ MyBlog follows **Clean Architecture** (also known as Onion Architecture), ensuri
9999 │
100100 ▼
101101┌─────────────────────────────────────────────────────────────────┐
102- │ MyBlog.Infrastructure │
103- │ (Data Access Layer) │
102+ │ MyBlog.Infrastructure │
103+ │ (Data Access Layer) │
104104│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌───────────┐ │
105105│ │Repositories │ │ Services │ │ Telemetry │ │ Data/ │ │
106106│ │ (EF Core) │ │Auth,Password│ │ Exporters │ │ DbContext │ │
@@ -109,11 +109,11 @@ MyBlog follows **Clean Architecture** (also known as Onion Architecture), ensuri
109109 │
110110 ▼
111111┌─────────────────────────────────────────────────────────────────┐
112- │ MyBlog.Core │
113- │ (Domain Layer) │
112+ │ MyBlog.Core │
113+ │ (Domain Layer) │
114114│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌───────────┐ │
115115│ │ Models │ │ Interfaces │ │ Services │ │ Constants │ │
116- │ │Post,User,..│ │IPostRepo,.. │ │Markdown,Slug│ │ AppConsts │ │
116+ │ │Post,User,.. │ │IPostRepo,.. │ │Markdown,Slug│ │ AppConsts │ │
117117│ └─────────────┘ └─────────────┘ └─────────────┘ └───────────┘ │
118118└─────────────────────────────────────────────────────────────────┘
119119```
@@ -598,15 +598,15 @@ This approach is idempotent—safe to run multiple times without side effects.
598598
599599```
600600┌─────────┐ ┌─────────────────┐ ┌─────────────┐
601- │ User │──── ▶│ Rate Limiting │─ ───▶│ Login │
601+ │ User │───▶│ Rate Limiting │───▶│ Login │
602602│ │ │ Middleware │ │ Page │
603603└─────────┘ └─────────────────┘ └─────────────┘
604604 │ │
605605 │ Delay if needed │ POST /login
606606 ▼ ▼
607607 ┌─────────────────┐ ┌─────────────┐
608608 │ Track Attempt │ │ AuthService │
609- │ (per IP) │ │ .Authenticate│
609+ │ (per IP) │ │.Authenticate│
610610 └─────────────────┘ └─────────────┘
611611 │
612612 ▼
@@ -723,7 +723,7 @@ When a user logs in, the following claims are created:
723723
724724```
725725┌─────────────────────────────────────────────────────────────────┐
726- │ Post Creation │
726+ │ Post Creation │
727727└─────────────────────────────────────────────────────────────────┘
728728 │
729729 ▼
@@ -1061,13 +1061,13 @@ This prevents XSS attacks while allowing Markdown syntax.
10611061
10621062```
10631063┌─────────────┐ ┌─────────────────┐ ┌─────────────┐
1064- │ InputFile │──── ▶│ Validate Size │─ ───▶│ Validate │
1064+ │ InputFile │───▶│ Validate Size │───▶│ Validate │
10651065│ Component │ │ (< 5MB) │ │ Content Type│
10661066└─────────────┘ └─────────────────┘ └─────────────┘
10671067 │
10681068 ▼
10691069 ┌─────────────────┐ ┌─────────────┐
1070- │ Save to │◀──── │ Read to │
1070+ │ Save to │◀───│ Read to │
10711071 │ Database │ │ MemoryStream│
10721072 └─────────────────┘ └─────────────┘
10731073```
@@ -1108,23 +1108,23 @@ MyBlog tracks how many users are currently reading each post using SignalR.
11081108#### Architecture
11091109
11101110```
1111- ┌─────────────────────────────────────────────────────────────────┐
1111+ ┌────────────────────────────────────────────────────────────────── ┐
11121112│ Browser │
1113- │ ┌─────────────┐ │
1113+ │ ┌─────────────┐ │
11141114│ │ ReaderBadge │◀──────SignalR Connection──────────────────────┐│
11151115│ │ Component │ ││
11161116│ └─────────────┘ ││
11171117└─────────────────────────────────────────────────────────────────┘│
11181118 │
11191119┌─────────────────────────────────────────────────────────────────┐│
1120- │ Server ││
1121- │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ││
1122- │ │ ReaderHub │──── ▶│ Tracking │──── ▶│ Concurrent │ ││
1123- │ │ (SignalR) │ │ Service │ │ Dictionary │ ││
1124- │ └─────────────┘ └─────────────┘ └─────────────┘ ││
1125- │ │ │ ││
1126- │ └──────────Broadcast Count──────────────┘◀─────────────── ┘│
1127- └─────────────────────────────────────────────────────────────────┘
1120+ │ Server ││
1121+ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ││
1122+ │ │ ReaderHub │───▶│ Tracking │───▶│ Concurrent │ ││
1123+ │ │ (SignalR) │ │ Service │ │ Dictionary │ ││
1124+ │ └─────────────┘ └─────────────┘ └─────────────┘ ││
1125+ │ │ │ ││
1126+ │ └──────────Broadcast Count──────────────┘◀─────────────┘│
1127+ └────────────────────────────────────────────────────────────────── ┘
11281128```
11291129
11301130#### SignalR Hub Methods
0 commit comments