using DigitalData.Core.Infrastructure; using DigitalData.UserManager.Infrastructure.Repositories; using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Infrastructure.Contracts; using Microsoft.EntityFrameworkCore; namespace EnvelopeGenerator.Infrastructure.Repositories { public class EnvelopeHistoryRepository : CRUDRepository, IEnvelopeHistoryRepository { public EnvelopeHistoryRepository(EGDbContext dbContext) : base(dbContext) { } public async Task CountAsync(int? envelopeId = null, string? userReference = null, int? status = null) { var query = _dbSet.AsQueryable(); if (envelopeId is not null) query = query.Where(eh => eh.EnvelopeId == envelopeId); if (userReference is not null) query = query.Where(eh => eh.UserReference == userReference); if (status is not null) query = query.Where(eh => eh.Status == status); return await query.CountAsync(); } } }