< Summary

Information
Class: FAU.DataAccess.Repositories.PeriodosRepository
Assembly: FAU.DataAccess
File(s): /home/runner/work/Sistema.Liquidacion.BE/Sistema.Liquidacion.BE/FAU.DataAccess/Repositories/PeriodosRepository.cs
Line coverage
85%
Covered lines: 34
Uncovered lines: 6
Coverable lines: 40
Total lines: 76
Line coverage: 85%
Branch coverage
75%
Covered branches: 6
Total branches: 8
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%
ObtenerPorIdAsync()75%44100%
ObtenerActivoAsync()100%210%
ObtenerEnCursoAsync()75%44100%
ObtenerPorAnioMesAsync()100%11100%
CrearAsync()100%11100%
ActualizarAsync()100%11100%
ExisteActivoAsync()100%210%

File(s)

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

#LineLine coverage
 1using FAU.Entidades;
 2using Microsoft.EntityFrameworkCore;
 3
 4namespace FAU.DataAccess.Repositories;
 5
 6public class PeriodosRepository : IPeriodosRepository
 7{
 8    private readonly ApplicationDbContext _context;
 9
 3510    public PeriodosRepository(ApplicationDbContext context)
 11    {
 3512        _context = context;
 3513    }
 14
 15    public async Task<Periodo?> ObtenerPorIdAsync(long id)
 16    {
 2017        var periodo = await _context.Set<Periodo>()
 2018            .Include(p => p.UsuarioCierreInsumos)
 2019            .Include(p => p.UsuarioCalculo)
 2020            .Include(p => p.UsuarioCierre)
 2021            .FirstOrDefaultAsync(p => p.Id == id);
 22
 2023        if (periodo != null)
 1924            periodo.UsuarioAperturaUsername = (await _context.Set<Usuario>().FindAsync(periodo.UsuarioApertura))?.Userna
 25
 2026        return periodo;
 2027    }
 28
 29    public async Task<Periodo?> ObtenerActivoAsync()
 30    {
 031        return await _context.Set<Periodo>()
 032            .FirstOrDefaultAsync(p => p.Estado == "ABIERTA" && p.Activo);
 033    }
 34
 35    public async Task<Periodo?> ObtenerEnCursoAsync()
 36    {
 1737        var periodo = await _context.Set<Periodo>()
 1738            .Include(p => p.UsuarioCierreInsumos)
 1739            .Include(p => p.UsuarioCalculo)
 1740            .Include(p => p.UsuarioCierre)
 1741            .Where(p => p.Activo && p.Estado != Periodo.EstadoCerrada)
 1742            .OrderByDescending(p => p.Id)
 1743            .FirstOrDefaultAsync();
 44
 1745        if (periodo != null)
 946            periodo.UsuarioAperturaUsername = (await _context.Set<Usuario>().FindAsync(periodo.UsuarioApertura))?.Userna
 47
 1748        return periodo;
 1749    }
 50
 51    public async Task<Periodo?> ObtenerPorAnioMesAsync(short anio, short mes)
 52    {
 1053        return await _context.Set<Periodo>()
 1054            .FirstOrDefaultAsync(p => p.Anio == anio && p.Mes == mes);
 1055    }
 56
 57    public async Task<Periodo> CrearAsync(Periodo periodo)
 58    {
 659        _context.Set<Periodo>().Add(periodo);
 660        await _context.SaveChangesAsync();
 661        return periodo;
 662    }
 63
 64    public async Task<Periodo> ActualizarAsync(Periodo periodo)
 65    {
 1066        _context.Set<Periodo>().Update(periodo);
 1067        await _context.SaveChangesAsync();
 1068        return periodo;
 1069    }
 70
 71    public async Task<bool> ExisteActivoAsync()
 72    {
 073        return await _context.Set<Periodo>()
 074            .AnyAsync(p => p.Estado == "ABIERTA" && p.Activo);
 075    }
 76}