using IdentityServer.Domain.Data.DbContexts; using IdentityServer.Domain.Entities; using IdentityServer.Domain.Models; using IdentityServer.Domain.Repositories; using Microsoft.EntityFrameworkCore; using System; using System.Threading.Tasks; namespace IdentityServer.Domain.Data.Repositories { class IdentityRepository : IIdentityRepository { private readonly IdentityDbContext _dbContext; public IdentityRepository(IdentityDbContext dbContext) { _dbContext = dbContext; } public Task GetUser(string userName, string password) { return _dbContext.Users .Include(z => z.Status) .Include(z => z.Claims) .FirstOrDefaultAsync(z => z.UserName == userName && z.Password == password); } public async Task UpdateUserAfterAuthentication(AppUser user, Token token) { var userToken = new UserToken() { UserId = user.UserId, Token = token.Raw, ValidFrom = token.ValidFrom, ValidUntil = token.ValidUntil }; await _dbContext.AddAsync(userToken); user.LastLoginDate = DateTime.Now; _dbContext.Update(user); await _dbContext.SaveChangesAsync(); } } }