< Summary

Information
Class: CoWorkingApp.API.Infrastructure.Persistence.Repositories.UserRepository
Assembly: CoWorkingApp.API
File(s): H:\Vicentico\Proyectos\CoWorkingApp Project\CoWorkingApp\CoWorkingApp.API\Infrastructure\Persistence\Repositories\UserRepository.cs
Line coverage
100%
Covered lines: 7
Uncovered lines: 0
Coverable lines: 7
Total lines: 44
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Cyclomatic complexity Line coverage
.ctor(...)100%1100%
GetByEmailAsync()100%1100%
AuthenticateAsync()100%1100%

File(s)

H:\Vicentico\Proyectos\CoWorkingApp Project\CoWorkingApp\CoWorkingApp.API\Infrastructure\Persistence\Repositories\UserRepository.cs

#LineLine coverage
 1using CoWorkingApp.API.Infrastructure.UnitOfWorks;
 2using CoWorkingApp.Core.Application.Contracts.Repositories;
 3using CoWorkingApp.Core.Domain.Entities;
 4using Microsoft.EntityFrameworkCore;
 5
 6namespace CoWorkingApp.API.Infrastructure.Persistence.Repositories
 7{
 8    /// <summary>
 9    /// Implementación del repositorio para la entidad User.
 10    /// </summary>
 11    public class UserRepository : RepositoryGeneric<User>, IUserRepository
 12    {
 13        /// <summary>
 14        /// Constructor de la clase UserRepository.
 15        /// </summary>
 16        /// <param name="unitOfWork">Unidad de trabajo que gestiona las transacciones de la base de datos.</param>
 4917        public UserRepository(IUnitOfWork unitOfWork) : base(unitOfWork) { }
 18
 19        /// <summary>
 20        /// Obtiene un usuario por su dirección de correo electrónico de manera asincrónica.
 21        /// </summary>
 22        /// <param name="email">Dirección de correo electrónico del usuario.</param>
 23        /// <returns>Usuario correspondiente a la dirección de correo electrónico especificada o null si no se encuentra
 24        public async Task<User> GetByEmailAsync(string email)
 225        {
 26            // Busca el primer usuario que coincida con el correo electrónico especificado
 227            return await _dbSet.FirstOrDefaultAsync(u => u.Email.Equals(email));
 228        }
 29
 30        /// <summary>
 31        /// Autentica a un usuario por su dirección de correo electrónico y contraseña de manera asincrónica.
 32        /// </summary>
 33        /// <param name="email">Dirección de correo electrónico del usuario.</param>
 34        /// <param name="password">Contraseña del usuario.</param>
 35        /// <returns>Usuario autenticado correspondiente a las credenciales especificadas o null si la autenticación fal
 36        public async Task<User> AuthenticateAsync(string email, string password)
 237        {
 38            // Busca un usuario que coincida con el correo electrónico y la contraseña proporcionados
 239            return await _dbSet.FirstOrDefaultAsync(u => u.Email.Equals(email) && u.Password.Equals(password));
 240        }
 41
 42        // Puedes implementar otros métodos específicos para UserRepository si es necesario
 43    }
 44}