/// <summary> /// Crée une CarteUtilisateur à partir des Claims envoyées avec une requête Http. /// Fixe l'Utilisateur de la carte avec son Archives, avec ses Clients incluant leurs Archives et leur Site incluant son Fournisseur /// et avec ses Fournisseurs incluant leurs Archives et leur Site. /// </summary> /// <param name="httpContext">le HttpContext de la requête</param> /// <returns>la CarteUtilisateur créée, ou null si les Claims ne sont pas valide</returns> public async Task <CarteUtilisateur> CréeCarteUtilisateur(HttpContext httpContext) { CarteUtilisateur carte = new CarteUtilisateur(_context); ClaimsPrincipal user = httpContext.User; IEnumerable <Claim> claims = user.Identities.FirstOrDefault()?.Claims; if (claims == null || claims.Count() == 0) { return(carte); } string userId = claims.Where(c => c.Type == JwtClaims.UserId).First()?.Value; string userName = claims.Where(c => c.Type == JwtClaims.UserName).First()?.Value; string uid = claims.Where(c => c.Type == JwtClaims.UtilisateurId).First()?.Value; int sessionId = int.Parse(claims.Where(c => c.Type == JwtClaims.SessionId).First()?.Value); Utilisateur utilisateur = await _context.Utilisateur .Where(u => u.Id == userId) .FirstOrDefaultAsync(); if (utilisateur == null) { return(carte); } if (userName != utilisateur.UserName) { // fausse carte return(carte); } await carte.FixeUtilisateur(utilisateur); carte.SessionId = sessionId; return(carte); }
/// <summary> /// Crée une CarteUtilisateur à partir d'un Utilisateur. /// Fixe l'Utilisateur de la carte avec son Archives, avec ses Clients incluant leurs Archives et leur Site incluant son Fournisseur /// et avec ses Fournisseurs incluant leurs Archives et leur Site. /// </summary> /// <param name="utilisateur"></param> /// <returns>la CarteUtilisateur créée</returns> public async Task <CarteUtilisateur> CréeCarteUtilisateur(Utilisateur utilisateur) { CarteUtilisateur carte = new CarteUtilisateur(_context); await carte.FixeUtilisateur(utilisateur); return(carte); }