< Summary

Information
Class: FAU.DataAccess.Repositories.NovedadPeriodoRepository
Assembly: FAU.DataAccess
File(s): /home/runner/work/Sistema.Liquidacion.BE/Sistema.Liquidacion.BE/FAU.DataAccess/Repositories/NovedadPeriodoRepository.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 60
Coverable lines: 60
Total lines: 124
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 10
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%210%
GetByIdAsync()100%210%
GetAllAsync()100%210%
GetPaginatedAsync()0%7280%
GetByPeriodoAndPersonaAsync()100%210%
CreateAsync()100%210%
UpdateAsync()100%210%
DeleteAsync()0%620%
ExistsAsync()100%210%
ExistsByIdAsync()100%210%

File(s)

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

#LineLine coverage
 1using FAU.Entidades;
 2using Microsoft.EntityFrameworkCore;
 3
 4namespace FAU.DataAccess.Repositories;
 5
 6public class NovedadPeriodoRepository : INovedadPeriodoRepository
 7{
 8    private readonly ApplicationDbContext _context;
 9
 010    public NovedadPeriodoRepository(ApplicationDbContext context)
 11    {
 012        _context = context;
 013    }
 14
 15    public async Task<NovedadPeriodo?> GetByIdAsync(long id)
 16    {
 017        return await _context.NovedadesPeriodo
 018            .Include(n => n.Persona)
 019            .FirstOrDefaultAsync(n => n.Id == id);
 020    }
 21
 22    public async Task<IEnumerable<NovedadPeriodo>> GetAllAsync()
 23    {
 024        return await _context.NovedadesPeriodo
 025            .Where(n => true)
 026            .OrderBy(n => n.FechaDesde)
 027            .ThenBy(n => n.Id)
 028            .ToListAsync();
 029    }
 30
 31    public async Task<(IEnumerable<NovedadPeriodo> Items, int TotalCount)> GetPaginatedAsync(
 32        int page,
 33        int pageSize,
 34        long? periodoId = null,
 35        long? personaId = null,
 36        string? tipo = null,
 37        string? estado = null)
 38    {
 039        var query = _context.NovedadesPeriodo.AsQueryable();
 40
 041        if (periodoId.HasValue)
 42        {
 043            query = query.Where(n => n.PeriodoId == periodoId.Value);
 44        }
 45
 046        if (personaId.HasValue)
 47        {
 048            query = query.Where(n => n.PersonaId == personaId.Value);
 49        }
 50
 051        if (!string.IsNullOrWhiteSpace(tipo))
 52        {
 053            query = query.Where(n => n.Tipo.ToLower() == tipo.Trim().ToLower());
 54        }
 55
 056        if (!string.IsNullOrWhiteSpace(estado))
 57        {
 058            query = query.Where(n => n.Estado.ToLower() == estado.Trim().ToLower());
 59        }
 60        else
 61        {
 062            query = query.Where(n => n.Estado != "eliminada");
 63        }
 64
 065        var totalCount = await query.CountAsync();
 66
 067        var items = await query
 068            .Include(n => n.Persona)
 069            .OrderBy(n => n.FechaDesde)
 070            .ThenBy(n => n.Id)
 071            .Skip((page - 1) * pageSize)
 072            .Take(pageSize)
 073            .ToListAsync();
 74
 075        return (items, totalCount);
 076    }
 77
 78    public async Task<IEnumerable<NovedadPeriodo>> GetByPeriodoAndPersonaAsync(long periodoId, long personaId)
 79    {
 080        return await _context.NovedadesPeriodo
 081            .Where(n => n.PeriodoId == periodoId && n.PersonaId == personaId)
 082            .OrderBy(n => n.FechaDesde)
 083            .ThenBy(n => n.Id)
 084            .ToListAsync();
 085    }
 86
 87    public async Task<NovedadPeriodo> CreateAsync(NovedadPeriodo novedadPeriodo)
 88    {
 089        _context.NovedadesPeriodo.Add(novedadPeriodo);
 090        await _context.SaveChangesAsync();
 091        return novedadPeriodo;
 092    }
 93
 94    public async Task<NovedadPeriodo> UpdateAsync(NovedadPeriodo novedadPeriodo)
 95    {
 096        _context.NovedadesPeriodo.Update(novedadPeriodo);
 097        await _context.SaveChangesAsync();
 098        return novedadPeriodo;
 099    }
 100
 101    public async Task DeleteAsync(long id)
 102    {
 0103        var novedad = await _context.NovedadesPeriodo.FindAsync(id);
 0104        if (novedad != null)
 105        {
 0106            _context.NovedadesPeriodo.Remove(novedad);
 0107            await _context.SaveChangesAsync();
 108        }
 0109    }
 110
 111    public async Task<bool> ExistsAsync(long periodoId, long personaId, string tipo, DateTime fechaDesde)
 112    {
 0113        return await _context.NovedadesPeriodo
 0114            .AnyAsync(n => n.PeriodoId == periodoId
 0115                           && n.PersonaId == personaId
 0116                           && n.Tipo.ToLower() == tipo.Trim().ToLower()
 0117                           && n.FechaDesde == fechaDesde);
 0118    }
 119
 120    public async Task<bool> ExistsByIdAsync(long id)
 121    {
 0122        return await _context.NovedadesPeriodo.AnyAsync(n => n.Id == id);
 0123    }
 124}