У меня есть такая логика, как это, прежде чем сохранить запас в db, я проверю наличие в базе данных того же кода запаса в базе данных. Мой вопрос заключается в том, где я должен поместить логику в уровень сервиса или уровень репозитория. вот пример кода:
вариант 1: поместить в слое службы, я поставил метод IsAccountAlreadyExists в слое службы
где поставить логику проверки? В службе или хранилище?
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();
}
}
вариант 2: я переверну IsAccountAlreadyExists логику слоя хранилища.
public override void Save(AccountInfo accountInfo)
{
try
{
using (var scope = new TransactionScope())
{
accountRepository.Save(accountInfo);
scope.Complete();
}
}
catch(AccountAlreadyExistedException e)
{
...
}
}
Как вы относитесь к этому?