Ho un pattern di repository utilizzato nel mio progetto .NET Core 2.1. Durante l'implementazione dello scenario di modifica / aggiornamento, ho un dubbio.
Il mio dominio:
public class Component
{
public int Id { get; set; }
public string Description { get; set; }
public decimal Amount { get; set; }
public string Narration { get; set; }
}
Qui, il repository avrà un metodo:
public async Task<ComponentViewModel> Edit(ComponentEditDTO dto)
{
var fcDb = await _context.FeeComponentCollection.FirstOrDefaultAsync(f => f.Id == dto.Id);
if (fcDb == null)
{
//what to do here?
}
}
Ho pensato a due alternative.
- Avere un metodo nel repository che controlli se esiste l'ID, quindi utilizzare questo metodo per rifiutare le richieste di modifica a livello di API
- Lascia che il repository gestisca interamente il caso di modifica. Posso pensare di sollevare un'eccezione (forse RecordNotFoundException) qui. Una volta sollevata l'eccezione, l'API può quindi gestire l'errore emettendo BadRequest.
Qual è la procedura standard in questi casi?