using Microsoft.AspNetCore.Identity; using Raven.Client.Documents; using Raven.Client.Documents.Session; using System.Threading; using System.Threading.Tasks; using zero.Core.Entities; namespace zero.Core.Identity { public partial class UserStore : IUserEmailStore where TUser : class, IUser { /// public async Task FindByEmailAsync(string normalizedEmail, CancellationToken cancellationToken) { using (IAsyncDocumentSession session = Raven.OpenAsyncSession()) { return await session.Query().FirstOrDefaultAsync(x => x.Email == normalizedEmail, cancellationToken); } } /// public Task GetEmailAsync(TUser user, CancellationToken cancellationToken) { return Task.FromResult(user.Email); } /// public Task GetEmailConfirmedAsync(TUser user, CancellationToken cancellationToken) { return Task.FromResult(user.IsEmailConfirmed); } /// public Task GetNormalizedEmailAsync(TUser user, CancellationToken cancellationToken) { return Task.FromResult(user.Email); } /// public Task SetEmailAsync(TUser user, string email, CancellationToken cancellationToken) { user.Email = email.ToLowerInvariant(); return Task.CompletedTask; } /// public Task SetEmailConfirmedAsync(TUser user, bool confirmed, CancellationToken cancellationToken) { user.IsEmailConfirmed = confirmed; return Task.CompletedTask; } /// public Task SetNormalizedEmailAsync(TUser user, string normalizedEmail, CancellationToken cancellationToken) { user.Email = normalizedEmail.ToLowerInvariant(); return Task.CompletedTask; } } }