< Summary

Information
Class: FAU.DataAccess.Repositories.DependienteRepository
Assembly: FAU.DataAccess
File(s): /home/runner/work/Sistema.Liquidacion.BE/Sistema.Liquidacion.BE/FAU.DataAccess/Repositories/DependienteRepository.cs
Line coverage
100%
Covered lines: 43
Uncovered lines: 0
Coverable lines: 43
Total lines: 78
Line coverage: 100%
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%
GetDependientesPagedAsync()100%66100%
GetDependientesByPersonaAsync()100%11100%
GetDependienteByIdAsync()100%11100%
ExisteConyugeActivoAsync()100%11100%
CreateDependienteAsync()100%11100%
UpdateDependienteAsync()100%11100%

File(s)

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

#LineLine coverage
 1using FAU.Entidades;
 2using Microsoft.EntityFrameworkCore;
 3
 4namespace FAU.DataAccess.Repositories;
 5
 6public class DependienteRepository : IDependienteRepository
 7{
 8    private readonly ApplicationDbContext _context;
 9
 1510    public DependienteRepository(ApplicationDbContext context)
 11    {
 1512        _context = context;
 1513    }
 14
 15    public async Task<(IEnumerable<Dependiente> Items, int TotalCount)> GetDependientesPagedAsync(
 16        int page, int pageSize, long? personaId = null, string? tipo = null, bool? activo = null)
 17    {
 518        var query = _context.Dependientes
 519            .Include(d => d.Persona)
 520            .AsQueryable();
 21
 522        if (personaId.HasValue)
 123            query = query.Where(d => d.PersonaId == personaId.Value);
 24
 525        if (!string.IsNullOrWhiteSpace(tipo))
 126            query = query.Where(d => d.Tipo == tipo);
 27
 528        if (activo.HasValue)
 129            query = query.Where(d => d.Activo == activo.Value);
 30
 531        var totalCount = await query.CountAsync();
 532        var items = await query
 533            .OrderBy(d => d.PersonaId)
 534            .ThenBy(d => d.Tipo)
 535            .Skip((page - 1) * pageSize)
 536            .Take(pageSize)
 537            .ToListAsync();
 38
 539        return (items, totalCount);
 540    }
 41
 42    public async Task<IEnumerable<Dependiente>> GetDependientesByPersonaAsync(long personaId)
 43    {
 244        return await _context.Dependientes
 245            .Include(d => d.Persona)
 246            .Where(d => d.PersonaId == personaId)
 247            .OrderBy(d => d.Tipo)
 248            .ThenBy(d => d.Nombre)
 249            .ToListAsync();
 250    }
 51
 52    public async Task<Dependiente?> GetDependienteByIdAsync(long id)
 53    {
 354        return await _context.Dependientes
 355            .Include(d => d.Persona)
 356            .FirstOrDefaultAsync(d => d.Id == id);
 357    }
 58
 59    public async Task<bool> ExisteConyugeActivoAsync(long personaId)
 60    {
 461        return await _context.Dependientes
 462            .AnyAsync(d => d.PersonaId == personaId && d.Tipo == "conyuge_sin_ingresos" && d.Activo);
 463    }
 64
 65    public async Task<Dependiente> CreateDependienteAsync(Dependiente dependiente)
 66    {
 367        _context.Dependientes.Add(dependiente);
 368        await _context.SaveChangesAsync();
 369        return dependiente;
 370    }
 71
 72    public async Task<Dependiente> UpdateDependienteAsync(Dependiente dependiente)
 73    {
 174        _context.Dependientes.Update(dependiente);
 175        await _context.SaveChangesAsync();
 176        return dependiente;
 177    }
 78}