private async Task <TUser> GetUserByReference(AzureUserReferenceKey referenceKey) { this.ThrowIfDisposed(); var op = TableOperation.Retrieve <AzureUserReference>(referenceKey.Partition, referenceKey.Row); var result = await this.ExecuteAsync(op); if (result.HttpStatusCode != 200) { return(null); } var reference = (AzureUserReference)result.Result; if (reference.UserId == null) { // TODO: log error because this should never happen. reference.UserId = String.Empty; } var userKey = AzureUserKey.ForUserId(reference.UserId); op = TableOperation.Retrieve <TUser>(userKey.Partition, userKey.Row); result = await this.ExecuteAsync(op); return((TUser)result.Result); }
public AzureUserReference(AzureUserReferenceKey key, string id) { if (String.IsNullOrEmpty(id)) { throw new ArgumentNullException("User id must be specified to create a reference.", nameof(id)); } this.PartitionKey = key.Partition; this.RowKey = key.Row; this.UserId = id; }
private static AzureUserReference CreateEmailReference(TUser user) { if (String.IsNullOrEmpty(user.NormalizedEmail)) { return(null); } var referenceKey = AzureUserReferenceKey.ForEmail(user.NormalizedEmail); return(new AzureUserReference(referenceKey, user.Id) { ETag = "*" }); }
private static AzureUserReference CreateUserNameReference(AzureUser user) { if (String.IsNullOrEmpty(user.NormalizedUserName)) { return(null); } var referenceKey = AzureUserReferenceKey.ForUsername(user.NormalizedUserName); return(new AzureUserReference(referenceKey, user.Id) { ETag = "*" }); }
public async Task <TUser> FindByEmailAsync(string normalizedEmail, CancellationToken cancellationToken) { var referenceKey = AzureUserReferenceKey.ForEmail(normalizedEmail); return(await this.GetUserByReference(referenceKey)); }
public async Task <TUser> FindByNameAsync(string normalizedUserName, CancellationToken cancellationToken) { var referenceKey = AzureUserReferenceKey.ForUsername(normalizedUserName); return(await this.GetUserByReference(referenceKey)); }