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