< Summary

Information
Class: FAU.DataAccess.Repositories.AcreedorRepository
Assembly: FAU.DataAccess
File(s): /home/runner/work/Sistema.Liquidacion.BE/Sistema.Liquidacion.BE/FAU.DataAccess/Repositories/AcreedorRepository.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 37
Coverable lines: 37
Total lines: 83
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 6
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%
GetByCodigoAsync()100%210%
GetPagedAsync()0%4260%
CreateAsync()100%210%
UpdateAsync()100%210%
ExistsCodigoAsync()100%210%

File(s)

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

#LineLine coverage
 1using FAU.Entidades;
 2using Microsoft.EntityFrameworkCore;
 3
 4namespace FAU.DataAccess.Repositories;
 5
 6public class AcreedorRepository : IAcreedorRepository
 7{
 8    private readonly ApplicationDbContext _context;
 9
 010    public AcreedorRepository(ApplicationDbContext context)
 11    {
 012        _context = context;
 013    }
 14
 15    public async Task<Acreedor?> GetByIdAsync(long id)
 16    {
 017        return await _context.Acreedores
 018            .FirstOrDefaultAsync(a => a.Id == id);
 019    }
 20
 21    public async Task<Acreedor?> GetByCodigoAsync(string codigo)
 22    {
 023        return await _context.Acreedores
 024            .FirstOrDefaultAsync(a => a.Codigo == codigo);
 025    }
 26
 27    public async Task<(IEnumerable<Acreedor> Items, int TotalCount)> GetPagedAsync(
 28        int page,
 29        int pageSize,
 30        string? searchQuery = null,
 31        bool? activo = null,
 32        string? categoria = null)
 33    {
 034        var query = _context.Acreedores.AsQueryable();
 35
 036        if (!string.IsNullOrWhiteSpace(searchQuery))
 37        {
 038            query = query.Where(a =>
 039                a.Nombre.ToLower().Contains(searchQuery.ToLower()) ||
 040                a.Codigo.ToLower().Contains(searchQuery.ToLower()));
 41        }
 42
 043        if (activo.HasValue)
 44        {
 045            query = query.Where(a => a.Activo == activo.Value);
 46        }
 47
 048        if (!string.IsNullOrWhiteSpace(categoria))
 49        {
 050            query = query.Where(a => a.CategoriaDeficit == categoria);
 51        }
 52
 053        var totalCount = await query.CountAsync();
 54
 055        var items = await query
 056            .OrderBy(a => a.OrdenLegalDeficit)
 057            .ThenBy(a => a.Nombre)
 058            .Skip((page - 1) * pageSize)
 059            .Take(pageSize)
 060            .ToListAsync();
 61
 062        return (items, totalCount);
 063    }
 64
 65    public async Task<Acreedor> CreateAsync(Acreedor acreedor)
 66    {
 067        _context.Acreedores.Add(acreedor);
 068        await _context.SaveChangesAsync();
 069        return acreedor;
 070    }
 71
 72    public async Task<Acreedor> UpdateAsync(Acreedor acreedor)
 73    {
 074        _context.Acreedores.Update(acreedor);
 075        await _context.SaveChangesAsync();
 076        return acreedor;
 077    }
 78
 79    public async Task<bool> ExistsCodigoAsync(string codigo)
 80    {
 081        return await _context.Acreedores.AnyAsync(a => a.Codigo == codigo);
 082    }
 83}