Ejemplo n.º 1
0
        public async Task <User> GetByExternalId(string externalId)
        {
            externalId
            .ThrowInvalidDataExceptionIfNullOrWhiteSpace("External Id must be set");

            return(await _context.FirstOrDefault <User>(
                       new ScanCondition(nameof(User.ExternalIds), ScanOperator.Contains, externalId)));
        }
        /// <summary>
        ///     Grabs the external <see cref="Claim" /> Id and resolves that to the internal <see cref="User" />.
        /// </summary>
        /// <remarks>
        ///     This is a specific purpose method for overriding the <see cref="ClaimsPrincipal" /> that the general
        ///     method<see cref="GetUserAsync" /> gets injected. We need this for earlier stages of the pipeline that
        ///     yet have the HttpContext.User fully setup. TODO: understand why
        /// </remarks>
        public async Task <User> GetPrincipleUserAsync(ClaimsPrincipal user)
        {
            var externalId = user.GetExternalId(Log);

            if (externalId.IsNullOrWhitespace())
            {
                return(new User());
            }

            // check for registered user
            return(await _dbContext
                   .FirstOrDefault <User>(new ScanCondition(nameof(User.ExternalIds), ScanOperator.Contains, externalId)));
        }
Ejemplo n.º 3
0
 public async Task <Tenant> Get(string id)
 {
     return(await _context.FirstOrDefault <Tenant>(id));
 }
 public static async Task <T> FirstOrDefault <T>(this IDynamoDBContext context, string id)
     where T : class
 {
     return(await context.FirstOrDefault <T>(HashKeyConstants.Default, id));
 }
 public static async Task <T> FirstOrDefault <T>(this IDynamoDBContext context, string key, string id)
     where T : class
 {
     return(await context.FirstOrDefault <T>(new ScanCondition(key, ScanOperator.Equal, id)));
 }