using back.DataModels; using back.persistance.data.repositories.Abstracts; using Microsoft.EntityFrameworkCore; using Transactional.Implementations.EntityFramework; namespace back.persistance.data.repositories; public class UserRepository(DataContext context) : ReadWriteRepository(context), IUserRepository { public async Task GetByEmail(string email) { try { if (string.IsNullOrEmpty(email)) return null; return await Entities.FirstOrDefaultAsync(u => u.Email == email); } catch { return null; } } public async Task GetUserSaltByEmail(string email) { try { if (string.IsNullOrEmpty(email)) return string.Empty; var user = await Entities.FirstOrDefaultAsync(u => u.Email == email); return user?.Salt ?? string.Empty; } catch { return string.Empty; } } public async Task Login(string email, string password) { if (string.IsNullOrEmpty(email) || string.IsNullOrEmpty(password)) return null; try { return await Entities.FirstOrDefaultAsync(u => u.Email == email && u.Password == password); } catch { return null; } } public async Task ExistsByEmail(string email) { try { if (string.IsNullOrEmpty(email)) return false; return await Entities.AnyAsync(u => u.Email == email); } catch { return false; } } //public async Task IsContentManager(string userId) //{ // var user = await GetById(userId); // if (user == null) // return false; // return user.Roles.Any(role => role.IsContentManager() || role.IsAdmin()); //} }