namespace MyOffice.Data.Repositories.Users; using MyOffice.Data.Models.Users; using Repositories; using Microsoft.EntityFrameworkCore; public class UserExternalRepository : AppRepository, IUserExternalRepository { public async Task AddUserExternalAsync(UserExternal userExternal) { return await AddAsync(userExternal); } public int AddUserExternal(UserExternal userExternal) { return Add(userExternal); } public async Task AddUserExternalsAsync(IEnumerable claims) { _context.AddRange(claims); return await SaveChangesAsync(); } public async Task> GetUserExternalsByUserNameAsync(string userName) { return await _context .UserClaims .Where(x => x.User.UserName == userName) .Include(x => x.User) .ToListAsync(); } public async Task> GetUserExternalsByUserIdAsync(Guid userId) { return await _context .UserClaims .Where(x => x.UserId == userId) .Include(x => x.User) .ToListAsync(); } public List GetUserExternalsByUser(Guid userId) { return _context .UserClaims .Where(x => x.UserId == userId) .Include(x => x.User) .ToList(); } public List GetUserExternalsByUserName(string userName) { return _context .UserClaims .Where(x => x.User.UserName == userName) .Include(x => x.User) .ToList(); } public async Task GetByUserIdAsync(Guid userId, string provider) { return await _context .UserClaims .Include(x => x.User) .FirstOrDefaultAsync(x => x.UserId == userId && x.Provider == provider); } public UserExternal? GetByUserId(Guid userId, string provider) { return _context .UserClaims .Include(x => x.User) .FirstOrDefault(x => x.UserId == userId && x.Provider == provider); } public UserExternal? GetByExternalId(string externalId, string provider) { return _context .UserClaims .Include(x => x.User) .FirstOrDefault(x => x.ExternalId == externalId && x.Provider == provider); } public Task GetByExternalIdAsync(string externalId, string provider) { return _context .UserClaims .Include(x => x.User) .FirstOrDefaultAsync(x => x.ExternalId == externalId && x.Provider == provider); } public void RemoveUserExternal(UserExternal userExternal) { Remove(userExternal); } }