- `ReadBy`-Methode im Receiver-Repository implementiert, um nach `emailAddress` und `signature` zu filtern. - `ReadByAsync`-Methode im Receiver-Service hinzugefügt, um Receiver-Daten abzurufen und zuzuordnen. - Controller-`Get`-Endpunkt aktualisiert, um optionale `emailAddress` und `signature` Query-Parameter für die Filterung zu unterstützen. - Fehlerbehandlung mit Protokollierung für fehlgeschlagene Service-Operationen im Controller hinzugefügt.
29 lines
1.0 KiB
C#
29 lines
1.0 KiB
C#
using DigitalData.Core.Infrastructure;
|
|
using EnvelopeGenerator.Domain.Entities;
|
|
using EnvelopeGenerator.Infrastructure.Contracts;
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
namespace EnvelopeGenerator.Infrastructure.Repositories
|
|
{
|
|
public class ReceiverRepository : CRUDRepository<Receiver, int, EGDbContext>, IReceiverRepository
|
|
{
|
|
public ReceiverRepository(EGDbContext dbContext) : base(dbContext)
|
|
{
|
|
}
|
|
|
|
protected IQueryable<Receiver> ReadBy(string? emailAddress = null, string? signature = null)
|
|
{
|
|
IQueryable<Receiver> 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<Receiver?> ReadByAsync(string? emailAddress = null, string? signature = null) => await ReadBy(emailAddress, signature).FirstOrDefaultAsync();
|
|
}
|
|
} |