using Microsoft.AspNetCore.Identity; using Raven.Client.Documents.Session; using System; using System.Threading; using System.Threading.Tasks; using zero.Core.Entities; namespace zero.Core.Identity { public partial class UserStore : IUserLockoutStore { /// public Task GetAccessFailedCountAsync(IUser user, CancellationToken cancellationToken) { return Task.FromResult(user.AccessFailedCount); } /// public Task GetLockoutEnabledAsync(IUser user, CancellationToken cancellationToken) { return Task.FromResult(user.LockoutEnabled); } /// public Task GetLockoutEndDateAsync(IUser user, CancellationToken cancellationToken) { return Task.FromResult(user.LockoutEnd); } /// public async Task IncrementAccessFailedCountAsync(IUser user, CancellationToken cancellationToken) { using (IAsyncDocumentSession session = Raven.OpenAsyncSession()) { user.AccessFailedCount += 1; await session.StoreAsync(user, cancellationToken); await session.SaveChangesAsync(cancellationToken); } return user.AccessFailedCount; } /// public async Task ResetAccessFailedCountAsync(IUser user, CancellationToken cancellationToken) { using (IAsyncDocumentSession session = Raven.OpenAsyncSession()) { user.AccessFailedCount = 0; await session.StoreAsync(user, cancellationToken); await session.SaveChangesAsync(cancellationToken); } } /// public async Task SetLockoutEnabledAsync(IUser user, bool enabled, CancellationToken cancellationToken) { using (IAsyncDocumentSession session = Raven.OpenAsyncSession()) { user.LockoutEnabled = enabled; await session.StoreAsync(user, cancellationToken); await session.SaveChangesAsync(cancellationToken); } } /// public async Task SetLockoutEndDateAsync(IUser user, DateTimeOffset? lockoutEnd, CancellationToken cancellationToken) { using (IAsyncDocumentSession session = Raven.OpenAsyncSession()) { user.LockoutEnd = lockoutEnd; await session.StoreAsync(user, cancellationToken); await session.SaveChangesAsync(cancellationToken); } } } }