< Summary

Information
Class: FAU.DataAccess.Repositories.IrpfRepository
Assembly: FAU.DataAccess
File(s): /home/runner/work/Sistema.Liquidacion.BE/Sistema.Liquidacion.BE/FAU.DataAccess/Repositories/IrpfRepository.cs
Line coverage
58%
Covered lines: 31
Uncovered lines: 22
Coverable lines: 53
Total lines: 105
Line coverage: 58.4%
Branch coverage
75%
Covered branches: 3
Total branches: 4
Branch coverage: 75%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
GetFranjasVigentesAsync()50%22100%
GetFranjasPorFechaVigenciaAsync()100%210%
GetHistorialFranjasAsync()100%210%
GetFranjaByIdAsync()100%11100%
GetFranjaActivaByNumeroAsync()100%11100%
ObtenerSiguienteFechaVigenciaAsync()100%210%
ExisteFranjaAsync()100%11100%
CreateFranjaAsync()100%11100%
CreateFranjasAsync()100%210%
UpdateFranjaAsync()100%11100%
UpdateFranjasAsync()100%210%
DeleteFranjaAsync()100%22100%

File(s)

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

#LineLine coverage
 1using FAU.Entidades;
 2using Microsoft.EntityFrameworkCore;
 3
 4namespace FAU.DataAccess.Repositories;
 5
 6public class IrpfRepository : IIrpfRepository
 7{
 8    private readonly ApplicationDbContext _context;
 9
 1210    public IrpfRepository(ApplicationDbContext context)
 11    {
 1212        _context = context;
 1213    }
 14
 15    // ── Franjas ──────────────────────────────────────────────────────────────
 16
 17    public async Task<IEnumerable<FranjaIrpf>> GetFranjasVigentesAsync(DateTime? fecha = null)
 18    {
 219        var fechaRef = fecha?.Date ?? DateTime.UtcNow.Date;
 220        return await _context.FranjasIrpf
 221            .Where(f => f.VigenteDesde <= fechaRef && (f.VigenteHasta == null || f.VigenteHasta >= fechaRef))
 222            .OrderBy(f => f.NumeroFranja)
 223            .ToListAsync();
 224    }
 25
 26    public async Task<IEnumerable<FranjaIrpf>> GetFranjasPorFechaVigenciaAsync(DateTime vigenteDesde)
 27    {
 028        return await _context.FranjasIrpf
 029            .Where(f => f.VigenteDesde.Date == vigenteDesde.Date)
 030            .OrderBy(f => f.NumeroFranja)
 031            .ToListAsync();
 032    }
 33
 34    public async Task<IEnumerable<FranjaIrpf>> GetHistorialFranjasAsync()
 35    {
 036        return await _context.FranjasIrpf
 037            .OrderByDescending(f => f.VigenteDesde)
 038            .ThenBy(f => f.NumeroFranja)
 039            .ToListAsync();
 040    }
 41
 42    public async Task<FranjaIrpf?> GetFranjaByIdAsync(long id)
 43    {
 444        return await _context.FranjasIrpf.FindAsync(id);
 445    }
 46
 47    public async Task<FranjaIrpf?> GetFranjaActivaByNumeroAsync(short numeroFranja)
 48    {
 249        return await _context.FranjasIrpf
 250            .Where(f => f.NumeroFranja == numeroFranja && f.VigenteHasta == null)
 251            .FirstOrDefaultAsync();
 252    }
 53
 54    public async Task<DateTime?> ObtenerSiguienteFechaVigenciaAsync(DateTime vigenteDesde)
 55    {
 056        return await _context.FranjasIrpf
 057            .Where(f => f.VigenteDesde > vigenteDesde)
 058            .OrderBy(f => f.VigenteDesde)
 059            .Select(f => (DateTime?)f.VigenteDesde)
 060            .FirstOrDefaultAsync();
 061    }
 62
 63    public async Task<bool> ExisteFranjaAsync(short numeroFranja, DateTime vigenteDesde)
 64    {
 265        return await _context.FranjasIrpf
 266            .AnyAsync(f => f.NumeroFranja == numeroFranja && f.VigenteDesde.Date == vigenteDesde.Date);
 267    }
 68
 69    public async Task<FranjaIrpf> CreateFranjaAsync(FranjaIrpf franja)
 70    {
 471        _context.FranjasIrpf.Add(franja);
 472        await _context.SaveChangesAsync();
 473        return franja;
 474    }
 75
 76    public async Task CreateFranjasAsync(IEnumerable<FranjaIrpf> franjas)
 77    {
 078        _context.FranjasIrpf.AddRange(franjas);
 079        await _context.SaveChangesAsync();
 080    }
 81
 82    public async Task<FranjaIrpf> UpdateFranjaAsync(FranjaIrpf franja)
 83    {
 184        _context.FranjasIrpf.Update(franja);
 185        await _context.SaveChangesAsync();
 186        return franja;
 187    }
 88
 89    public async Task UpdateFranjasAsync(IEnumerable<FranjaIrpf> franjas)
 90    {
 091        _context.FranjasIrpf.UpdateRange(franjas);
 092        await _context.SaveChangesAsync();
 093    }
 94
 95    public async Task DeleteFranjaAsync(long id)
 96    {
 297        var franja = await _context.FranjasIrpf.FindAsync(id);
 298        if (franja != null)
 99        {
 1100            _context.FranjasIrpf.Remove(franja);
 1101            await _context.SaveChangesAsync();
 102        }
 2103    }
 104
 105}