Ejemplo n.º 1
0
        /// <inheritdoc />
        public async Task <GetUserByEmailQuery.User> TryCreateDefaultUserAsync(IEnumerable <Claim> userClaims)
        {
            var userEmailClaim = userClaims.FirstOrDefault(x => x.Type == UserClaimTypes.Email);

            if (userEmailClaim != null)
            {
                var userEmail = userEmailClaim.Value;
                var user      = await GetUserAsync(userEmail);

                if (user == null)
                {
                    user = new GetUserByEmailQuery.User()
                    {
                        Email = userEmail,
                    };

                    user.Id = await CreateNewUserAsync(new CreateUserCommand()
                    {
                        Email     = user.Email,
                        FirstName = userClaims.FirstOrDefault(x => x.Type == UserClaimTypes.GivenName)?.Value,
                        LastName  = userClaims.FirstOrDefault(x => x.Type == UserClaimTypes.FamilyName)?.Value
                    });
                }

                return(user);
            }

            return(null);
        }
Ejemplo n.º 2
0
        private IEnumerable <Claim> GetUserAuthorizationClaims(GetUserByEmailQuery.User user)
        {
            List <Claim> claims = new List <Claim>();

            claims.Add(new Claim(UserClaimTypes.UserId, user.Id.ToString()));

            return(claims);
        }