< Summary

Information
Class: CoWorkingApp.API.Infrastructure.Persistence.Repositories.SeatRepository
Assembly: CoWorkingApp.API
File(s): H:\Vicentico\Proyectos\CoWorkingApp Project\CoWorkingApp\CoWorkingApp.API\Infrastructure\Persistence\Repositories\SeatRepository.cs
Line coverage
100%
Covered lines: 10
Uncovered lines: 0
Coverable lines: 10
Total lines: 45
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%
GetAvailablesAsync()100%1100%
GetByNameAsync()100%1100%

File(s)

H:\Vicentico\Proyectos\CoWorkingApp Project\CoWorkingApp\CoWorkingApp.API\Infrastructure\Persistence\Repositories\SeatRepository.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 Seat.
 10    /// </summary>
 11    public class SeatRepository : RepositoryGeneric<Seat>, ISeatRepository
 12    {
 13        /// <summary>
 14        /// Constructor de la clase SeatRepository.
 15        /// </summary>
 16        /// <param name="unitOfWork">Unidad de trabajo que gestiona las transacciones de la base de datos.</param>
 5217        public SeatRepository(IUnitOfWork unitOfWork) : base(unitOfWork) { }
 18
 19        /// <summary>
 20        /// Obtiene los asientos disponibles (no bloqueados) de manera asincrónica.
 21        /// </summary>
 22        /// <returns>Colección de asientos disponibles.</returns>
 23        public async Task<IEnumerable<Seat>> GetAvailablesAsync()
 224        {
 25            // Filtra los asientos que no están bloqueados
 226            return await _dbSet
 227                .Where(s => !s.IsBlocked)
 228                .AsNoTracking()
 229                .ToListAsync();
 230        }
 31
 32        /// <summary>
 33        /// Busca el primer asiento que coincida con el nombre especificado de manera asincrónica.
 34        /// </summary>
 35        /// <param name="name">Nombre del asiento.</param>
 36        /// <returns>Asiento correspondiente al nombre especificado o null si no se encuentra.</returns>
 37        public async Task<Seat> GetByNameAsync(string name)
 338        {
 39            // Busca el primer asiento que coincida con el nombre
 340            return await _dbSet.FirstOrDefaultAsync(s => s.Name.Equals(name));
 341        }
 42
 43        // Puedes implementar otros métodos específicos para SeatRepository si es necesario
 44    }
 45}