< 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: 59
Coverable lines: 59
Total lines: 123
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            .FirstOrDefaultAsync(n => n.Id == id);
 019    }
 20
 21    public async Task<IEnumerable<NovedadPeriodo>> GetAllAsync()
 22    {
 023        return await _context.NovedadesPeriodo
 024            .Where(n => n.Estado != "eliminada")
 025            .OrderBy(n => n.FechaDesde)
 026            .ThenBy(n => n.Id)
 027            .ToListAsync();
 028    }
 29
 30    public async Task<(IEnumerable<NovedadPeriodo> Items, int TotalCount)> GetPaginatedAsync(
 31        int page,
 32        int pageSize,
 33        long? periodoId = null,
 34        long? personaId = null,
 35        string? tipo = null,
 36        string? estado = null)
 37    {
 038        var query = _context.NovedadesPeriodo.AsQueryable();
 39
 040        if (periodoId.HasValue)
 41        {
 042            query = query.Where(n => n.PeriodoId == periodoId.Value);
 43        }
 44
 045        if (personaId.HasValue)
 46        {
 047            query = query.Where(n => n.PersonaId == personaId.Value);
 48        }
 49
 050        if (!string.IsNullOrWhiteSpace(tipo))
 51        {
 052            query = query.Where(n => n.Tipo.ToLower() == tipo.Trim().ToLower());
 53        }
 54
 055        if (!string.IsNullOrWhiteSpace(estado))
 56        {
 057            query = query.Where(n => n.Estado.ToLower() == estado.Trim().ToLower());
 58        }
 59        else
 60        {
 061            query = query.Where(n => n.Estado != "eliminada");
 62        }
 63
 064        var totalCount = await query.CountAsync();
 65
 066        var items = await query
 067            .OrderBy(n => n.FechaDesde)
 068            .ThenBy(n => n.Id)
 069            .Skip((page - 1) * pageSize)
 070            .Take(pageSize)
 071            .ToListAsync();
 72
 073        return (items, totalCount);
 074    }
 75
 76    public async Task<IEnumerable<NovedadPeriodo>> GetByPeriodoAndPersonaAsync(long periodoId, long personaId)
 77    {
 078        return await _context.NovedadesPeriodo
 079            .Where(n => n.PeriodoId == periodoId && n.PersonaId == personaId && n.Estado != "eliminada")
 080            .OrderBy(n => n.FechaDesde)
 081            .ThenBy(n => n.Id)
 082            .ToListAsync();
 083    }
 84
 85    public async Task<NovedadPeriodo> CreateAsync(NovedadPeriodo novedadPeriodo)
 86    {
 087        _context.NovedadesPeriodo.Add(novedadPeriodo);
 088        await _context.SaveChangesAsync();
 089        return novedadPeriodo;
 090    }
 91
 92    public async Task<NovedadPeriodo> UpdateAsync(NovedadPeriodo novedadPeriodo)
 93    {
 094        _context.NovedadesPeriodo.Update(novedadPeriodo);
 095        await _context.SaveChangesAsync();
 096        return novedadPeriodo;
 097    }
 98
 99    public async Task DeleteAsync(long id)
 100    {
 0101        var novedad = await _context.NovedadesPeriodo.FindAsync(id);
 0102        if (novedad != null)
 103        {
 0104            novedad.Estado = "eliminada";
 0105            await _context.SaveChangesAsync();
 106        }
 0107    }
 108
 109    public async Task<bool> ExistsAsync(long periodoId, long personaId, string tipo, DateTime fechaDesde)
 110    {
 0111        return await _context.NovedadesPeriodo
 0112            .AnyAsync(n => n.PeriodoId == periodoId
 0113                           && n.PersonaId == personaId
 0114                           && n.Tipo.ToLower() == tipo.Trim().ToLower()
 0115                           && n.FechaDesde == fechaDesde
 0116                           && n.Estado != "eliminada");
 0117    }
 118
 119    public async Task<bool> ExistsByIdAsync(long id)
 120    {
 0121        return await _context.NovedadesPeriodo.AnyAsync(n => n.Id == id);
 0122    }
 123}