Commit graph

120 commits

Author SHA1 Message Date
980153a9fc refactor(model): rename Yavsc.Blogspot.BlogPost to BlogPostDto
When commit d14f06bc moved BlogPost from PostIt.Models to
Yavsc.Blogspot, it created an unfortunate collision with the
server-side EF entity Yavsc.Models.Blog.BlogPost. The two
classes have nothing in common beyond the name; the DTO is
the wire shape PostIt exchanges with the Blogs API, the EF
entity is the persistence model. Server code that imports both
namespaces (BlogSpotService.cs, etc.) ended up with 'BlogPost
is an ambiguous reference between X and Y' errors.

Renaming the client DTO to BlogPostDto (matching the
naming convention of the other DTOs in Yavsc.Api.Client.Dtos
— CircleDto, CircleAuthorizationDto, UserSearchResultDto)
disambiguates without renaming the EF entity on the server.

The namespace stays Yavsc.Blogspot; only the class name
changes. All call sites (client code, tests, XAML DataTemplates,
XML doc comments) are updated mechanically.
2026-08-18 00:20:01 +01:00
d14f06bc3e refactor(model): move BlogPost DTO from PostIt.Models to Yavsc.Blogspot
BlogPost is shared between the server (Yavsc.Server/Models/Blog/
BlogPost.cs is the EF entity) and any client that talks to the
blogs API. Keeping the client-side DTO in PostIt.Models made
sense when there was only one consumer; now that the
Yavsc.Api.Client project is about to host BlogApiClient alongside
CircleApiClient and BlogAclApiClient, the DTO has to live in a
layer both the client project and PostIt can reference without
inverting the dependency.

Yavsc.Abstract is the existing home for cross-tier interfaces
and DTOs (IBlogPost, IBlogPostPayLoad, IApplicationUser).
Yavsc.Blogspot is the sub-namespace already used by the
matching interface, so the new concrete class follows.

Why not move Circle and CircleAuthorizationToBlogPost at the
same time? Both depend on the concrete ApplicationUser class
(via the Owner and Target/Allowed navigation properties) which
lives in Yavsc.Server. Moving them would mean either dragging
ApplicationUser into the abstract layer (huge blast radius —
auth, billing, chat, etc.) or weakening the navigation
properties (breaks EF Core shaping). They're staying where
they are; the new Yavsc.Api.Client will get DTO counterparts
instead.

Updated call sites:
- 4 .cs files: replace 'using PostIt.Models;' with
  'using Yavsc.Blogspot;' where the file was actually using
  BlogPost. Files that only used SignaturePadData keep their
  'using PostIt.Models;' — that type stays put.
- 1 .axaml file: xmlns:models="using:PostIt.Models" ->
  xmlns:models="using:Yavsc.Blogspot" (one DataTemplate for
  the post list in MainPage).

Build + tests green (51/51).
2026-08-17 23:45:45 +01:00
e17b24afe7 re-refacto BlogPost serialization 2026-08-05 21:11:22 +01:00
0a76784858 refacto BlogPost serialization 2026-08-05 21:05:14 +01:00
ec0085b7e3 refacto blogPost 2026-08-03 01:36:12 +01:00
3febd63b06 WIP audiences 2026-07-12 02:42:13 +01:00
Lum
4198e4dcf2 Blog: render user avatar through a null-safe helper
GET /BlogSpot/Details/1 retournait 500 (avec un 500-sur-500 sur
la page d'erreur elle-même) parce que DisplayTemplates
/ApplicationUser.cshtml faisait `var avuri = "/Avatars/" +
Model.UserName + ".s.png"` : avec <Nullable>enable</Nullable>,
Razor émet un null-check implicite sur Model.UserName et lève
NullReferenceException quand l'auteur n'a pas de UserName
posé (donnée héritée, user partiellement initialisé).

- UserDisplayHelpers.AvatarSrc : helper statique pur dans
  Yavsc.Abstract.Identity qui retourne
  YavscConstants.DefaultAvatar pour user null / UserName vide
  ou whitespace, et un path /avatars/<name>.s.png sinon.
- ApplicationUser.cshtml : utilise le helper.
- Tests : 4 cas (null, vide, whitespace, valide) dans
  Yavsc.Org.Tests/NonRegression.

Bonus : le path d'avatar passe de "/Avatars/" (S majuscule,
ne résolvait pas dans le middleware de fichiers statiques) à
YavscConstants.AvatarsPath ("/avatars" minuscule), pour fermer
l'autre trou que centraliser le calcul permettait de fixer
proprement.
2026-07-11 19:41:09 +01:00
a523d4071e tests 2026-07-06 00:47:35 +01:00
5e4d548708 refacto query status 2026-07-04 22:35:53 +01:00
f5a9a3ddef renaming Reviewed 2026-07-04 22:25:59 +01:00
bd51df6ed9 drop the deigner.cs 2026-07-04 16:06:02 +01:00
2759661aa5 refacto chathub 2026-07-04 15:28:07 +01:00
db25b0772e bug fix IUserSettings 2026-06-30 23:55:43 +01:00
728aa4198c Exploiting GitVersion 2026-06-28 14:11:26 +01:00
c1f4d19975 fices the UI 2026-06-15 02:55:22 +01:00
bdc974b29b érrance 2026-06-12 12:47:04 +01:00
bba719c8c1 doc : Architecute 2026-06-12 12:34:30 +01:00
e98bba4247 refacts and PostIt Nav 2026-06-11 20:02:32 +01:00
80144bf9fc refacts, and launching Blogs 2026-06-04 22:04:20 +01:00
e24208e77b refact 2026-05-30 19:34:22 +01:00
1aafb7cc7d IModerationService 2026-05-30 18:20:17 +01:00
a90cdc08b8 docker composes 2026-05-30 15:41:59 +01:00
95dec3636a Use InMemory db driver at testing 2026-05-28 22:18:26 +01:00
3b4376a5f0 repo refs 2026-05-24 20:55:29 +01:00
5620213cf5 better 2026-04-19 20:36:03 +01:00
Paul Schneider
e042e34bf7 refact and login 2026-03-09 02:07:42 +00:00
Paul Schneider
cbd5822fa2 diable nullable 2026-03-01 17:25:25 +00:00
Paul Schneider
40e8e08690 reorg 2026-02-28 21:17:54 +00:00
Paul Schneider
45514010f2 REORG 2026-02-14 16:54:27 +00:00
Paul Schneider
bcadc733bb refacts 2025-11-16 15:53:13 +00:00
Paul Schneider
44cbaefa9c User list 2025-08-19 21:32:17 +01:00
Paul Schneider
997c39703a Authorizations 2025-08-18 11:27:13 +01:00
Paul Schneider
5c046dfa88 build cli 2025-07-16 00:47:50 +01:00
Paul Schneider
8fc1153e59 testing 2025-07-14 20:35:13 +01:00
Paul Schneider
253a2919f3 misc 2025-07-07 07:49:18 +01:00
Paul Schneider
21cd878839 fixies the refact of blog spot index 2025-06-29 19:53:56 +01:00
Paul Schneider
9b7a6c0125 refact 2025-06-29 18:44:35 +01:00
Paul Schneider
39788f46f9 migration net9.0 2025-06-16 02:30:32 +01:00
Paul Schneider
03b098f37e a description ? 2025-06-08 15:23:46 +01:00
Paul Schneider
5998c474af bump sdk to net-9 2025-06-08 14:41:50 +01:00
Paul Schneider
380f2314dc Code cleanup 2025-03-04 18:05:21 +00:00
Paul Schneider
b9ba97f5e8 User settings 2025-02-24 23:29:48 +00:00
Paul Schneider
71262647b3 permission handling 2025-02-23 20:23:34 +00:00
Paul Schneider
9e6a4f7d13 Get User Id from Web API 2025-02-17 23:57:12 +00:00
Paul Schneider
f2e54953c0 references cleanup 2025-02-16 18:43:32 +00:00
Paul Schneider
29303d5aea custom ProfileService 2025-02-15 20:06:07 +00:00
Paul Schneider
8e8f4d3896 refactoring 2025-02-14 22:44:33 +00:00
Paul Schneider
a16188338a IdentityServer8 2025-02-08 20:06:24 +00:00
Paul Schneider
fdf5ee915e Fogo 2024-12-14 20:21:41 +00:00
Paul Schneider
277dff7d61 Login registration 2024-11-23 14:23:47 +00:00