< 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
100%
Covered lines: 37
Uncovered lines: 0
Coverable lines: 37
Total lines: 83
Line coverage: 100%
Branch coverage
100%
Covered branches: 6
Total branches: 6
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
GetByIdAsync()100%11100%
GetByCodigoAsync()100%11100%
GetPagedAsync()100%66100%
CreateAsync()100%11100%
UpdateAsync()100%11100%
ExistsCodigoAsync()100%11100%

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
 2810    public AcreedorRepository(ApplicationDbContext context)
 11    {
 2812        _context = context;
 2813    }
 14
 15    public async Task<Acreedor?> GetByIdAsync(long id)
 16    {
 717        return await _context.Acreedores
 718            .FirstOrDefaultAsync(a => a.Id == id);
 719    }
 20
 21    public async Task<Acreedor?> GetByCodigoAsync(string codigo)
 22    {
 223        return await _context.Acreedores
 224            .FirstOrDefaultAsync(a => a.Codigo == codigo);
 225    }
 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    {
 934        var query = _context.Acreedores.AsQueryable();
 35
 936        if (!string.IsNullOrWhiteSpace(searchQuery))
 37        {
 138            query = query.Where(a =>
 139                a.Nombre.ToLower().Contains(searchQuery.ToLower()) ||
 140                a.Codigo.ToLower().Contains(searchQuery.ToLower()));
 41        }
 42
 943        if (activo.HasValue)
 44        {
 145            query = query.Where(a => a.Activo == activo.Value);
 46        }
 47
 948        if (!string.IsNullOrWhiteSpace(categoria))
 49        {
 250            query = query.Where(a => a.CategoriaDeficit == categoria);
 51        }
 52
 953        var totalCount = await query.CountAsync();
 54
 955        var items = await query
 956            .OrderBy(a => a.OrdenLegalDeficit)
 957            .ThenBy(a => a.Nombre)
 958            .Skip((page - 1) * pageSize)
 959            .Take(pageSize)
 960            .ToListAsync();
 61
 962        return (items, totalCount);
 963    }
 64
 65    public async Task<Acreedor> CreateAsync(Acreedor acreedor)
 66    {
 367        _context.Acreedores.Add(acreedor);
 368        await _context.SaveChangesAsync();
 369        return acreedor;
 370    }
 71
 72    public async Task<Acreedor> UpdateAsync(Acreedor acreedor)
 73    {
 274        _context.Acreedores.Update(acreedor);
 275        await _context.SaveChangesAsync();
 276        return acreedor;
 277    }
 78
 79    public async Task<bool> ExistsCodigoAsync(string codigo)
 80    {
 581        return await _context.Acreedores.AnyAsync(a => a.Codigo == codigo);
 582    }
 83}