< Summary

Information
Class: FAU.DataAccess.Repositories.TablaPermanenciaRepository
Assembly: FAU.DataAccess
File(s): /home/runner/work/Sistema.Liquidacion.BE/Sistema.Liquidacion.BE/FAU.DataAccess/Repositories/TablaPermanenciaRepository.cs
Line coverage
96%
Covered lines: 50
Uncovered lines: 2
Coverable lines: 52
Total lines: 102
Line coverage: 96.1%
Branch coverage
100%
Covered branches: 6
Total branches: 6
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
GetByIdAsync()100%11100%
GetPagedAsync()100%22100%
GetAllAsync()100%11100%
CreateAsync()100%11100%
UpdateAsync()100%11100%
DeleteAsync()100%22100%
ExistsOverlapAsync()100%22100%
ExistsByIdAsync()100%210%

File(s)

/home/runner/work/Sistema.Liquidacion.BE/Sistema.Liquidacion.BE/FAU.DataAccess/Repositories/TablaPermanenciaRepository.cs

#LineLine coverage
 1using FAU.Entidades;
 2using Microsoft.EntityFrameworkCore;
 3
 4namespace FAU.DataAccess.Repositories;
 5
 6public class TablaPermanenciaRepository : ITablaPermanenciaRepository
 7{
 8    private readonly ApplicationDbContext _context;
 9
 1010    public TablaPermanenciaRepository(ApplicationDbContext context)
 11    {
 1012        _context = context;
 1013    }
 14
 15    public async Task<TablaPermanencia?> GetByIdAsync(long id)
 16    {
 617        return await _context.TablaPermanencias
 618            .FirstOrDefaultAsync(t => t.Id == id && t.Activo);
 619    }
 20
 21    public async Task<(IEnumerable<TablaPermanencia> Items, int TotalCount)> GetPagedAsync(
 22        int page,
 23        int pageSize,
 24        long? escalafonId = null)
 25    {
 126        var query = _context.TablaPermanencias
 127            .Where(t => t.Activo)
 128            .AsQueryable();
 29
 130        if (escalafonId.HasValue)
 31        {
 132            query = query.Where(t => t.EscalafonId == escalafonId.Value);
 33        }
 34
 135        var totalCount = await query.CountAsync();
 36
 137        var items = await query
 138            .OrderBy(t => t.EscalafonId)
 139            .ThenBy(t => t.AniosDesde)
 140            .ThenBy(t => t.AniosHasta)
 141            .Skip((page - 1) * pageSize)
 142            .Take(pageSize)
 143            .ToListAsync();
 44
 145        return (items, totalCount);
 146    }
 47
 48    public async Task<IEnumerable<TablaPermanencia>> GetAllAsync()
 49    {
 250        return await _context.TablaPermanencias
 251            .Where(t => t.Activo)
 252            .OrderBy(t => t.EscalafonId)
 253            .ThenBy(t => t.AniosDesde)
 254            .ThenBy(t => t.AniosHasta)
 255            .ToListAsync();
 256    }
 57
 58    public async Task<TablaPermanencia> CreateAsync(TablaPermanencia tablaPermanencia)
 59    {
 1160        _context.TablaPermanencias.Add(tablaPermanencia);
 1161        await _context.SaveChangesAsync();
 1162        return tablaPermanencia;
 1163    }
 64
 65    public async Task<TablaPermanencia> UpdateAsync(TablaPermanencia tablaPermanencia)
 66    {
 167        _context.TablaPermanencias.Update(tablaPermanencia);
 168        await _context.SaveChangesAsync();
 169        return tablaPermanencia;
 170    }
 71
 72    public async Task DeleteAsync(long id)
 73    {
 474        var entidad = await _context.TablaPermanencias.FindAsync(id);
 475        if (entidad != null)
 76        {
 477            entidad.Activo = false;
 478            await _context.SaveChangesAsync();
 79        }
 480    }
 81
 82    public async Task<bool> ExistsOverlapAsync(long escalafonId, short aniosDesde, short aniosHasta, long? excludingId =
 83    {
 584        var query = _context.TablaPermanencias
 585            .Where(t => t.Activo &&
 586                        t.EscalafonId == escalafonId &&
 587                        t.AniosDesde <= aniosHasta &&
 588                        t.AniosHasta >= aniosDesde);
 89
 590        if (excludingId.HasValue)
 91        {
 192            query = query.Where(t => t.Id != excludingId.Value);
 93        }
 94
 595        return await query.AnyAsync();
 596    }
 97
 98    public async Task<bool> ExistsByIdAsync(long id)
 99    {
 0100        return await _context.TablaPermanencias.AnyAsync(t => t.Id == id && t.Activo);
 0101    }
 102}