< Summary

Information
Class: FAU.DataAccess.Repositories.CompPersonal048018Repository
Assembly: FAU.DataAccess
File(s): /home/runner/work/Sistema.Liquidacion.BE/Sistema.Liquidacion.BE/FAU.DataAccess/Repositories/CompPersonal048018Repository.cs
Line coverage
41%
Covered lines: 14
Uncovered lines: 20
Coverable lines: 34
Total lines: 70
Line coverage: 41.1%
Branch coverage
0%
Covered branches: 0
Total branches: 4
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
ObtenerPorIdAsync(...)100%11100%
ObtenerActivoPorPersonaAsync(...)100%11100%
ObtenerPaginadoAsync()0%2040%
CrearAsync()100%11100%
ActualizarAsync()100%11100%
ConsultaCompleta()100%11100%

File(s)

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

#LineLine coverage
 1using FAU.Entidades;
 2using Microsoft.EntityFrameworkCore;
 3
 4namespace FAU.DataAccess.Repositories;
 5
 6public class CompPersonal048018Repository : ICompPersonal048018Repository
 7{
 8    private readonly ApplicationDbContext _contexto;
 9
 1210    public CompPersonal048018Repository(ApplicationDbContext contexto)
 11    {
 1212        _contexto = contexto;
 1213    }
 14
 15    public Task<CompPersonal048018?> ObtenerPorIdAsync(long id) =>
 2016        ConsultaCompleta().FirstOrDefaultAsync(c => c.Id == id);
 17
 18    public Task<CompPersonal048018?> ObtenerActivoPorPersonaAsync(long personaId) =>
 1219        ConsultaCompleta().FirstOrDefaultAsync(c => c.PersonaId == personaId && c.Estado == "activo");
 20
 21    public async Task<(IReadOnlyList<CompPersonal048018> Items, int Total)> ObtenerPaginadoAsync(
 22        int pagina,
 23        int tamano,
 24        string? busqueda,
 25        string? estado)
 26    {
 027        var consulta = ConsultaCompleta().AsNoTracking();
 28
 029        if (!string.IsNullOrWhiteSpace(busqueda))
 30        {
 031            var texto = busqueda.Trim();
 032            consulta = consulta.Where(c =>
 033                c.Persona.Cedula.Contains(texto) ||
 034                c.Persona.PrimerNombre.Contains(texto) ||
 035                c.Persona.PrimerApellido.Contains(texto) ||
 036                (c.Persona.SegundoNombre != null && c.Persona.SegundoNombre.Contains(texto)) ||
 037                (c.Persona.SegundoApellido != null && c.Persona.SegundoApellido.Contains(texto)));
 38        }
 39
 040        if (!string.IsNullOrWhiteSpace(estado))
 041            consulta = consulta.Where(c => c.Estado == estado);
 42
 043        var total = await consulta.CountAsync();
 044        var items = await consulta
 045            .OrderBy(c => c.Persona.PrimerApellido)
 046            .ThenBy(c => c.Persona.PrimerNombre)
 047            .Skip((pagina - 1) * tamano)
 048            .Take(tamano)
 049            .ToListAsync();
 50
 051        return (items, total);
 052    }
 53
 54    public async Task<CompPersonal048018> CrearAsync(CompPersonal048018 entidad)
 55    {
 1156        _contexto.CompPersonal048018.Add(entidad);
 1157        await _contexto.SaveChangesAsync();
 1158        return entidad;
 1159    }
 60
 61    public async Task<CompPersonal048018> ActualizarAsync(CompPersonal048018 entidad)
 62    {
 763        _contexto.CompPersonal048018.Update(entidad);
 764        await _contexto.SaveChangesAsync();
 765        return entidad;
 766    }
 67
 68    private IQueryable<CompPersonal048018> ConsultaCompleta() =>
 3269        _contexto.CompPersonal048018.Include(c => c.Persona);
 70}