using DigitalData.Core.Infrastructure; using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Infrastructure.Contracts; using Microsoft.EntityFrameworkCore; namespace EnvelopeGenerator.Infrastructure.Repositories { public class ReceiverRepository : CRUDRepository, IReceiverRepository { public ReceiverRepository(EGDbContext dbContext) : base(dbContext) { } protected IQueryable ReadBy(string? emailAddress = null, string? signature = null) { IQueryable query = _dbSet.AsNoTracking(); if(emailAddress is not null) query = query.Where(r => r.EmailAddress == emailAddress); if(signature is not null) query = query.Where(r => r.Signature == signature); return query; } public async Task ReadByAsync(string? emailAddress = null, string? signature = null) => await ReadBy(emailAddress, signature).FirstOrDefaultAsync(); } }