< Summary

Information
Class: FAU.DataAccess.Repositories.AguinaldosRepository
Assembly: FAU.DataAccess
File(s): /home/runner/work/Sistema.Liquidacion.BE/Sistema.Liquidacion.BE/FAU.DataAccess/Repositories/AguinaldosRepository.cs
Line coverage
29%
Covered lines: 7
Uncovered lines: 17
Coverable lines: 24
Total lines: 49
Line coverage: 29.1%
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 Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
CreateAsync()100%11100%
GetByPersonaAnioSemestreAsync()100%210%
GetByPersonaIdAsync()100%210%
GetMesesRegistradosAsync()100%210%

File(s)

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

#LineLine coverage
 1using FAU.Entidades;
 2using Microsoft.EntityFrameworkCore;
 3
 4namespace FAU.DataAccess.Repositories;
 5
 6public class AguinaldosRepository : IAguinaldosRepository
 7{
 8    private readonly ApplicationDbContext _context;
 9
 610    public AguinaldosRepository(ApplicationDbContext context)
 11    {
 612        _context = context;
 613    }
 14
 15    public async Task<Aguinaldo> CreateAsync(Aguinaldo aguinaldo)
 16    {
 217        _context.Add(aguinaldo);
 218        await _context.SaveChangesAsync();
 219        return aguinaldo;
 220    }
 21
 22    public async Task<Aguinaldo?> GetByPersonaAnioSemestreAsync(long personaId, short anio, short semestre)
 23    {
 024        return await _context.Set<Aguinaldo>()
 025            .FirstOrDefaultAsync(a => a.PersonaId == personaId && a.Anio == anio && a.Semestre == semestre);
 026    }
 27
 28    public async Task<IEnumerable<Aguinaldo>> GetByPersonaIdAsync(long personaId)
 29    {
 030        return await _context.Set<Aguinaldo>()
 031            .Where(a => a.PersonaId == personaId)
 032            .ToListAsync();
 033    }
 34
 35    public async Task<IEnumerable<(string Cedula, short Anio, short Mes)>> GetMesesRegistradosAsync(IEnumerable<int> per
 36    {
 037        var registros = await _context.LiquidacionItems
 038            .Where(li => periodosIds.Contains((int)li.PeriodoId))
 039            .Join(_context.PeriodosLiquidacion,
 040                li => li.PeriodoId,
 041                p => p.Id,
 042                (li, p) => new { li.Cedula, p.Anio, p.Mes })
 043            .Distinct()
 044            .ToListAsync();
 45
 046        return registros.Select(x => (x.Cedula, x.Anio, x.Mes));
 047    }
 48
 49}