Tengo una lógica como esta, antes de guardar el stock en el db, verificará si hay stock con el mismo código de stock en la base de datos. Mi pregunta es dónde debería poner la lógica, en la capa de servicio o en la capa de repositorio. aquí es el código de ejemplo:
la opción 1: poner en la capa de servicio, pongo el Método IsAccountAlreadyExists en la capa de servicio
dónde poner la lógica de validar? En servicio o repositorio?
public override void Save(AccountInfo accountInfo)
{
using (var scope = new TransactionScope())
{
if(this.IsAccountAlreadyExists(accountInfo))
{
throw new AccountAlreadyExistedException(
"Account Code : " + accountInfo.AccountCode +
" already existed.");
}
accountRepository.Save(accountInfo);
scope.Complete();
}
}
opción 2: Voy a mover las IsAccountAlreadyExists lógica a la capa de repositorio.
public override void Save(AccountInfo accountInfo)
{
try
{
using (var scope = new TransactionScope())
{
accountRepository.Save(accountInfo);
scope.Complete();
}
}
catch(AccountAlreadyExistedException e)
{
...
}
}
¿cuál es su opinión?