lundi 5 décembre 2016

surrounding a function with actions

I am developing an Asp.net MVC application, and I have created an error handling system that forces me to create the following code per function in my BLL.

try
{
   ...
   _unitOfWork.Save(nameof(Function));
}
catch
{
   if (rollbackTo != null)
   {
      _unitOfWork.RollbackToSave(rollbackTo);
   }
   else
   {
       _unitOfWork.Rollback();
   }
   throw;
}

this basically allows me to manage my transactions per request, and manage the transaction's error handling without my Controllers knowing about the actual way that this is being done - it only allows it to decide whether or not the transaction will continue (rollbackTo parameter)

What I am wondering is, is there a way for me not to have to write this piece of code over and over? I thought about just throwing an exception, and then handle it in my pipeline - but since I need to return a valueable response to the user, and not just a 500 code - this isn't really an option. I thought about maybe creating a base class that calls and abstract method - and implementing it per function - but that won't work either, since the parameters can change. Any Ideas?

Aucun commentaire:

Enregistrer un commentaire