namespace Yavsc.Abstract.Identity { /// /// Helpers Razor-friendly pour rendre un user dans une vue /// sans exposer le template à des accesseurs nullables qui /// lèveraient . /// public static class UserDisplayHelpers { /// /// Chemin d'avatar à utiliser pour /// dans un display template. Défense contre null /// (user pas chargé, FK orpheline) et contre un /// UserName vide (donnée héritée, user partiellement /// initialisé). Sans cette garde, Razor émet une /// NullReferenceException dès qu'un accesseur .UserName /// apparaît dans le template, ce qui remonte en 500 et /// masque la page d'erreur elle-même. /// /// /// Le path retourné est aligné sur /// (minuscule). /// Les anciens display templates utilisaient "/Avatars/" /// avec un S majuscule, en désaccord avec le path statique /// servi par le middleware de fichiers — les images ne /// résolvaient pas. Centraliser le calcul ici ferme les /// deux trous. /// public static string AvatarSrc(IApplicationUser? user) { if (user==null || string.IsNullOrWhiteSpace(user?.UserName)) return YavscConstants.DefaultAvatar; return $"{YavscConstants.AvatarsPath}/{user!.UserName}.s.png"; } } }