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";
}
}
}