private UserAccountToken BuildToken(UserAccountData userData, IList <string> roles, string UserId)
        {
            var claims = new List <Claim>
            {
                new Claim(JwtRegisteredClaimNames.UniqueName, userData.Email),
                new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString())
            };

            foreach (var rol in roles)
            {
                claims.Add(new Claim(ClaimTypes.Role, rol));
            }

            var key   = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["JWT:key"]));
            var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

            var expiration = DateTime.UtcNow.AddMinutes(60);

            JwtSecurityToken token = new JwtSecurityToken(
                issuer: null,
                audience: null,
                claims: claims,
                expires: expiration,
                signingCredentials: creds);

            var newtoken = new UserAccountToken()
            {
                Token          = new JwtSecurityTokenHandler().WriteToken(token),
                ExpirationDate = expiration,
                Id             = UserId
            };

            return(newtoken);
        }
 /// <summary>
 /// Returns a list of members for the current account
 /// </summary>
 public IEnumerable <AccountMember> GetAccountMembers(UserAccountToken token)
 {
     return(_accountManager.GetAccountMembers(token, LatestValuationDate ?? DateTime.Today));
 }